次のエラーが永久に発生します。
_UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 27: ordinal not in range(128)
_
私はすでに試しました
x.encode("ascii", "ignore")
x.encode("utf-8")
x.decode("utf-8")
ただし、何も機能しません。
ソースでこのエンコーディングがどのエンコーディングにあるかを発見する必要があります。
これはISO-8859-1(ヨーロッパ言語)だと思います。その場合は "ä"ですが、確認する必要があります。キリル文字またはギリシャ語の場合もあります。
このエンコーディングの文字の完全なリストについては、 http://en.wikipedia.org/wiki/ISO/IEC_8859-1 を参照してください。
この情報を使用して、Pythonに変換を依頼できます。
Python 2.7
>>> s = '\xe4'
>>> t = s.decode('iso-8859-1')
>>> print t
ä
>>> for c in t:
... print ord(c)
...
228
>>> u = t.encode('utf-8')
>>> print u
ä
>>> for c in bytes(u):
... print ord(c)
...
195
164
文字列t
は、PythonのISO-8859-1で内部的にエンコードされます。文字列u
は内部的にUTF-8でエンコードされており、その文字はUTF-8では2バイトを使用します。 print
命令は、これらの異なるエンコーディングを表示する方法を「知っている」ことにも注意してください。