電子メールモジュールでQuoted-printableからISO-8859-1にデコードされたこの文字列があります。これにより、「Äpple」(スウェーデン語ではApple)に対応する「\ xC4pple」のような文字列が得られます。ただし、これらの文字列をUTF-8に変換することはできません。
>>> Apple = "\xC4pple"
>>> Apple
'\xc4pple'
>>> Apple.encode("UTF-8")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128)
私は何をすべきか?
最初にデコードしてからエンコードしてください:
Apple.decode('iso-8859-1').encode('utf8')
Python 3の場合:
bytes(Apple,'iso-8859-1').decode('utf-8')
Utf-8ではなくiso-8859-1(VeÅ\x99ejnéなどの単語を表示)として誤ってエンコードされたテキストにこれを使用しました。このコードは正しいバージョンを生成しますVeřejné。
Unicodeにデコードし、結果をUTF8にエンコードします。
Apple.decode('latin1').encode('utf8')
concept = concept.encode('ascii', 'ignore')
concept = MySQLdb.escape_string(concept.decode('latin1').encode('utf8').rstrip())
私はこれを行います、それが良いアプローチであるかどうかはわかりませんが、それは常に機能します!!