Python 2のエンコーディングについて質問があります。 私はUnicodeに文字のUnicodeコードを含むASCII文字列をデコードしようとしていますが、それをLatin-1にエンコードしますが、成功しません。ここにイラストがあります:
In[27]: d = u"u010d"
In[28]: print d.encode("utf-8")
č
In[29]: d1 = "u010d"
In[30]: d1.decode("ascii").encode("utf-8")
Out[30]: "\u010d"
私は変換したい "u010d"
に "č"
。カスタム文字列の置換を回避する組み込みのソリューションはありますか?
回答:
回答№1は1あなたがするとき
d1 = "u010d"
実際にこの文字列を取得します:
In [3]: d1
Out[3]: "\u010d"
これは、「通常の」(非Unicode)文字列が unnnn
エスケープシーケンスを使用しているため、リテラルのバックスラッシュに変換し、 unnnn
.
それを解読するには、 unicode_escape
コーデック:
In [4]: print d1.decode("unicode_escape").encode("utf-8")
č
もちろん、最初はUnicode以外の文字列でUnicodeエスケープシーケンスを使うべきではありません。