システムは私の制御下にないlatin-1
エンコード文字列(Ölandなど)を送信します。utf-8
に変換できますが、latin-1
には戻れません。 文字列をLatin-1からUTF-8に変換してからLatin-1に戻します。
Öland b'\xd6land'
は今、どのように私はシステムを模倣する
:text = '\xc3\x96land' # This is what the external system sends
iso = text.encode(encoding='latin-1') # this is my best guess
print(iso.decode('utf-8'))
print(u"Öland".encode(encoding='latin-1'))
これは、出力は次のとおりです。
'\xc3\x96land'
は
'\xd6land'
入力はLatin-1ですか。 "Ö"はエンコードに2バイト必要はありません。実際に0xD6は正しく見える:https://de.wikipedia.org/wiki/ISO_8859-1 – Thilo
正直なところいいえ。ラテン1はちょうど私の最高の推測です。 – Tomek
あなたの入力はすでにUTF-8ですか? 'Ö\t c3 96 \t大文字の大文字の文字 ' – Thilo