Frage

Ich versuche zu sehen, wie verschiedene Saiten in verschiedenen Codierungen aussehen würden ...

Zum Beispiel:

>>> str1 = "asdf"
>>> str1.encode('utf-16')
'\xff\xfea\x00s\x00d\x00f\x00'
>>> str1.encode('base64')
'YXNkZg==\n'

Und die bekommen mich alle, was ich will.

Aber ich würde gerne sehen, wie bestimmte Saiten in GBK, GB2312 oder GB18030 aussehen würden.

>>> str1.encode('gbk')
'asdf'
>>> str1.encode('gb2312')
'asdf'
>>> str1.encode('gb18030')
'asdf'

Sollten die Ausgänge nicht etwas anderes als 'ASDF' sein?

Ich habe Python 2.7 und ich kann den GBK.py und die anderen Dateien in lib/codiert sehen

Ich habe mich gefragt, ob ich keine Änderung in der Ausgabe sehe, da diese Buchstaben in dieser Codierung genauso angezeigt werden oder weil ich die Verwendung dieser Codierungen irgendwie aktivieren muss (eine Art Import benötigt?) ...

War es hilfreich?

Lösung

Solange nur Bytewerte 0-127 verwendet werden, entsprechen diese Codierungen ASCII. Gleiches gilt für UTF-8. Um den Unterschied wirklich zu erkennen, versuchen Sie es mit einigen tatsächlichen Chinesen.

Andere Tipps

Von dem Wikipedia -Seite:

Ein Zeichen wird als 1 oder 2 Bytes codiert. Ein Byte im Bereich 00–7f ist ein einzelnes Byte, das dasselbe bedeutet wie in ASCII. Streng genommen gibt es 96 Zeichen und 32 Kontrollcodes in diesem Bereich.

Nein, Ihre Testzeichenfolge von ASCII -Zeichen sollte nicht als etwas anderes codieren (zumindest nicht für GBK, ich habe die Sorten nicht überprüft).

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