1

假设我有一个字符串,例如:

>>>  stri = "日本"
>>>  res = stri
>>>  res
'\xe6\x97\xa5\xe6\x9c\xac'

现在我想将结果转换res"日本".

4

3 回答 3

1

(假设您在 UTF-8 控制台上使用 Python 2.x):

没有任何东西被转换,也没有必要把任何东西转换回来;你看到的是字符串的内部表示。试试看print

>>>  stri = "日本"
>>>  stri
'\xe6\x97\xa5\xe6\x9c\xac'
>>> print(stri)
日本

澄清:

如果您在控制台中输入 Python 变量的名称,控制台将打印该repr变量的名称。如果您想以人类可读的形式打印变量,请print改用。变量的存储方式没有区别,因此无需转换。

于 2012-06-20T11:12:46.870 回答
1

这是预期的行为 - 控制台不会在 unicode 中打印变量。如果你真的把它打印出来,你会看到正确的字符仍然存在。控制台在打印出来之前自动对每个变量使用 repr。您可以通过执行 print(repr...)) 来验证自己,如下例所示:

>>> stri = "日本"
>>> stri
'\xe6\x97\xa5\xe6\x9c\xac'
>>> print stri
日本
>>> print repr(stri)
'\xe6\x97\xa5\xe6\x9c\xac'
>>> 
于 2012-06-20T11:24:20.213 回答
1

就像蒂姆说的,角色还没有被转换。

这篇文章应该可以帮助您了解正在发生的事情

于 2012-06-20T11:26:09.973 回答