- Zeichencodierung von python ersetzen Sie "u2019' mit '

Ich habe versucht zahlreiche Wege zu Kodieren, das zu dem Ergebnis "BACK RUSHIN'" mit der wichtigste Charakter als das richtige Apostroph '.

Ich würde wie ein Weg, um zu diesem Zweck mit einigen der eingebauten Funktionen von Python hat, wo es keine Diskriminierung zwischen einem normalen string und einem unicode-string.

Dies war der code, den ich war mit dem abrufen der string: str(unicode(etree.tostring(root.xpath('path')[0],method='text', encoding='utf-8'),errors='ignore')).strip()

Das Resultat: 'BACK RUSHIN' die Sache der Apostroph ' fehlt.

Anderen Weg war: root.xpath('path/text()')

... Und das Ergebnis war: u'BACK RUSHIN\u2019' in python.

Schließlich, wenn ich versuche: u'BACK RUSHIN\u2019'.encode('ascii', 'replace')

Ist das Ergebnis: 'BACK RUSHIN?'

Bitte keine ersetzen-Funktionen würde ich gerne nutzen pythons-codec-Bibliotheken.
Auch ohne den Druck der saite, da es gehalten wird, in eine variable.

Dank

  • So, das Sie Lesen möchten (RIGHT SINGLE QUOTATION MARK) aus der XML, aber es übersetzen zu ' (APOSTROPH) ?
  • Dies ist nicht ein codec-problem. Wie Rob schon sagt, das sind zwei völlig verschiedene Charaktere. Drehen in die andere, ist eine Frage der Austausch, nicht die Codierung. Die (fälschlich genannt) unidecode Modul ist nicht mehr als eine Reihe von Ersetzungen von nicht-ASCII-Zeichen zu Art-of-ähnlich aussehende ASCII diejenigen, für verzweifelte Situationen, wenn Sie haben eine Schnittstelle für Systeme, die nicht Unicode. Ansonsten ist es in der Regel eine schlechte Idee zu zerfleischen Saiten auf diese Weise.
InformationsquelleAutor user3374113 | 2014-09-19
Schreibe einen Kommentar