Seite 1 von 1

UTF-8 Kodierung

Verfasst: Donnerstag 19. November 2009, 07:54
von Alak
Ich habe folgendes (wahrscheinlich simple) Problem:

Ich bräuchte zu einem String die UTF-8 Kodierung in hexadezimal.

Code: Alles auswählen

>>> s='äü'
>>> s.encode('utf8')
b'\xc3\xa4\xc3\xbc'
So weit so gut, aber

Code: Alles auswählen

>>> s='y'
>>> s.encode('utf8')
b'y'
Sollte das nicht eigentlich b'\x79' sein? Gibt es eine Möglichkeit, wie auch ASCII-Zeichen hexadezimal dargestellt werden?

Verfasst: Donnerstag 19. November 2009, 08:22
von Leonidas
Hallo Alak, willkommen im Forum:

Code: Alles auswählen

hex(ord('y'))

Re: UTF-8 Kodierung

Verfasst: Donnerstag 19. November 2009, 08:42
von sma
Alak hat geschrieben:Sollte das nicht eigentlich b'\x79' sein?
Nö. Die Entwickler von Python haben sich dafür entschieden, alle druckbaren Zeichen - was der guten alten C-Definition nach alles zwischen ASCII 32 und ASCII 126 ist - direkt darzustellen.

Hättest du Python 2.6, ginge `"Hallo".encode("utf8").encode("hex")`

Ah, in Python 3 funktioniert `import binascii; binascii.hexlify(b"b")`.

Stefan