Python-Unicode-Codepunkt für Unicode-Zeichen

8

Ich versuche, zu Testzwecken einige chinesische oder russische oder verschiedene nicht-englische Zeichensätze in eine flache Datei zu schreiben. Ich bleibe bei der Ausgabe eines Unicode-Hexadezimal- oder Dezimalwerts an das entsprechende Zeichen hängen.

Wenn Sie beispielsweise in Python eine fest codierte Menge von Zeichen wie абвгдежзийкл hätten, würden Sie value = u"абвгдежзийкл" und kein Problem zuweisen.

Wenn Sie jedoch eine einzelne Dezimal- oder Hexadezimalzahl wie 1081/0439 in einer Variablen gespeichert haben und diese mit dem entsprechenden tatsächlichen Zeichen (und nicht nur mit 0x439) ausgeben wollten, wie würde dies geschehen? Der obige Unicode-Dezimalwert bezieht sich auf й .

    
stoneferry 23.05.2012, 07:52
quelle

3 Antworten

17

Verwenden Sie unichr() (Python 2) oder chr() (Python 3):

%Vor%     
NPE 23.05.2012 07:53
quelle
1

Also lautet die Antwort auf die Frage:

  1. konvertiert den Hexadezimalwert in Dezimal mit int(hex_value, 16)
  2. Dann erhalten Sie die entsprechende Zeichenfolge mit chr() .

Zusammenfassend:

%Vor%     
Édouard Lopez 16.03.2017 16:46
quelle
0

Wenn Sie auf den Fehler stoßen:

  

ValueError: unichr () arg nicht im Bereich (0x10000) (schmaler Python-Build)

Wenn Sie versuchen, Ihren Hexadezimalwert mithilfe von unichr zu konvertieren, können Sie diesen Fehler umgehen, indem Sie Folgendes tun:

%Vor%     
Jaymon 08.12.2017 22:37
quelle

Tags und Links