/ / ASCIIをUnicodeエンコードの問題に変換する[duplicate] - python、python-2.x

ASCIIをUnicodeエンコードの問題に変換する[duplicate] - python、python-2.x

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エスケープシーケンスを使うべきではありません。