Имам въпрос за кодиране на Python 2. Опитвам се да декодирам ASCII низ, който съдържа Unicode код на писмо до Unicode, и след това го кодирам обратно към 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, на първо място.