Frage

Ich verwende die Python-Shell auf diese Weise:

>>> s = 'Ã'
>>> s
'\xc3'

Wie kann ich drucken s Variable den Charakter à zeigen ??? Dies ist die erste und einfachste Frage. Wirklich, ich bin mit dem Inhalt von einer Webseite erhalten, die Zeichen nicht ascii wie die vorherigen und andere mit Tilde wie A, E, I, N, etc. Auch ich versuche, einen regulären Ausdruck mit diesen Zeichen in dem zur Ausführung Musterausdruck gegen den Inhalt der Web-Seite.

Wie kann dieses Problem lösen ??

Dies ist ein Beispiel für einen regulären Ausdruck:

u'<td[^>]*>\s*Definición\s*</td><td class="value"[^>]*>\s*(?P<data>[\w ,-:\.\(\)]+)\s*</td>'

Wenn ich expresson Anwendung funktioniert gut.

EDIT [05/26/2009 16.38]: Sorry, über meine Erklärung. Ich werde versuchen, es besser zu erklären.

Ich habe einen Text von einer Seite zu bekommen. Ich habe die URL dieser Seite und ich habe die Regex, dass Text zu erhalten. Das erste, was ich dachte, war die Regex war falsch. Ich habe es mit Expresso und funktioniert gut, ich habe den Text, den ich wollte. Also, ich die zweite Sache, dachte, war, den Inhalt der Seite zu drucken, und das war, als ich sah, dass der Inhalt war nicht das, was ich in dem Quellcode der Web-Seite zu sehen. Die Unterschiede sind die nicht ASCII-Zeichen wie á, é, í, etc. Nun, ich weiß nicht, was ich zu tun, und wenn das Problem bei der Codierung des Inhalts der Seite oder im Mustertext des Regex. Einer der regex ich definiert habe, ist die vorherige.

Die Frage wolud sein: Gibt es irgendein Problem regex die Muster Text nicht ASCII-Zeichen ???

hat
War es hilfreich?

Lösung

Angenommen, Sie es als utf-8 drucken möchten. Vor Python 3 ist die beste, um es speziell zu kodieren

print u'Ã'.encode('utf-8')

, wenn Sie den Text bekommen extern, dann müssen Sie speziell dekodieren ( 'utf-8) wie

f = open(my_file)
a = f.next().decode('utf-8') # you have a unicode line in a
print a.encode('utf-8') 

Andere Tipps

Wie kann ich drucken s Variable den Charakter zeigen à ???
Verwendung print:

>>> s = 'Ã'
>>> s
'\xc3'
>>> print s
Ã

würde ich ord() verwenden, um herauszufinden, ob ein Zeichen ASCII / Besonderes:

if ord(c) > 127:
    # special character

Dies wird wahrscheinlich nicht mit Multibyte-Kodierungen arbeiten wie UTF-8. In diesem Fall würde ich auf Unicode vor dem Test konvertieren.

Wenn Sie Sonderzeichen aus einer Webseite zu erhalten, sollten Sie die Codierung wissen. Dann dekodieren finden Sie unter Unicode HOWTO .

Edit: Ich bin definitiv nicht sicher, was diese Frage zu ist ... Es kann eine gute Idee sein, es zu klären

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top