日语,韩语字符没有出现在列表中,但单独打印时显示正常

时间:2017-01-15 02:26:47

标签: python python-2.7

我有不同语言的字符串,主要是日语,当我尝试将它们打印为字符串时,它们显示正常。但是,当我将其中许多添加到python列表中,然后打印出列表时,它们显示为如下文本:xe9

例如:

string1 = "西野カナ- NO. 1"
string2 = "첫눈처럼 너에게 가겠다"

list1 = []

list1.append(string1)
list1.append(string2)

print list1

for item in list1:
    print item

这两个版画会给我不同的输出:

['\xe8\xa5\xbf\xe9\x87\x8e\xe3\x82\xab\xe3\x83\x8a- NO. 1 NEW', '\xec\xb2\xab\xeb\x88\x88\xec\xb2\x98\xeb\x9f\xbc \xeb\x84\x88\xec\x97\x90\xea\xb2\x8c \xea\xb0\x80\xea\xb2\xa0\xeb\x8b\xa4']

  西野カナ- NO. 1 NEW
  첫눈처럼 너에게 가겠다

我如何获得列表以打印实际字符?

1 个答案:

答案 0 :(得分:1)

实际上,当您打印列表或写入文件时,它会在内部调用str()方法,并在内部列出对其元素调用repr()。所以你看到repr()返回。

print repr(string1)
'\xe8\xa5\xbf\xe9\x87\x8e\xe3\x82\xab\xe3\x83\x8a- NO. 1'

真的很沮丧。所以如果你想避免编码问题,你应该开始认真考虑切换到Python3。

您可以查看this或查看unicode in python2 and python3