假设我有一个字符串,例如:
>>> stri = "日本"
>>> res = stri
>>> res
'\xe6\x97\xa5\xe6\x9c\xac'
现在我想将结果转换res
回"日本"
.
(假设您在 UTF-8 控制台上使用 Python 2.x):
没有任何东西被转换,也没有必要把任何东西转换回来;你看到的是字符串的内部表示。试试看print
。
>>> stri = "日本"
>>> stri
'\xe6\x97\xa5\xe6\x9c\xac'
>>> print(stri)
日本
澄清:
如果您在控制台中输入 Python 变量的名称,控制台将打印该repr
变量的名称。如果您想以人类可读的形式打印变量,请print
改用。变量的存储方式没有区别,因此无需转换。
这是预期的行为 - 控制台不会在 unicode 中打印变量。如果你真的把它打印出来,你会看到正确的字符仍然存在。控制台在打印出来之前自动对每个变量使用 repr。您可以通过执行 print(repr...)) 来验证自己,如下例所示:
>>> stri = "日本"
>>> stri
'\xe6\x97\xa5\xe6\x9c\xac'
>>> print stri
日本
>>> print repr(stri)
'\xe6\x97\xa5\xe6\x9c\xac'
>>>
就像蒂姆说的,角色还没有被转换。
这篇文章应该可以帮助您了解正在发生的事情