2017-01-15 27 views
1

我有不同語言的字符串,主要是日語,當我嘗試將它們打印爲字符串時,它們顯示正常。然而,當我增加了許多人到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 
    첫눈처럼 너에게 가겠다 

我該如何獲得列表來打印實際字符呢?

+2

可以升級到Python 3?在Python 2中使用unicode是一種挫敗之路。 – DSM

+0

列表的「str」包含其項目的「repr」。嘗試'print repr(string1)'查看轉義來自哪裏。 – Blckknght

回答

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

相關問題