2014-10-29 92 views
0

嗨我試着在python2.7帶U工作,感覺就像地獄在蟒蛇帶U工作

我的文件中有# - - 編碼:UTF-8 - - 頂部

聲明

我有一個列表:

letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 
    'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'Ä', 
    'Ö', 'Ü'] 

和IM試圖做到這一點:

word = 'FÜNF' 
new_string = '' 
for letter in word: 
    new_string += str(letters.index(letter)) 

我得到一個ValueError的字母不串

,如果我做

word = 'FÜNF' 
for letter in word: 
    print letter 

什麼,我得到的是: ˚F ├ £ ň ˚F

可以sbdy請解釋如何解決這個問題?提前致謝。

+0

Soddin'德國人..現在但麻煩:) – 2014-10-29 19:32:11

+0

我不確定修復,但它看起來像當你迭代它將每個字節視爲一個字符。 – Linuxios 2014-10-29 19:33:00

+0

@Linuxios:我的不好,堆棧溢出重新格式化它看起來不對。 – 2014-10-29 19:33:35

回答

0

您的文件使用utf8編碼。但是你定義了一個字節字符串,所以你的字符串不是4字節,而是5字節,因爲Ü需要兩個字節。要定義一個Unicode字符串,您必須鍵入

word = u'FÜNF' 

這也是您在控制檯中看到的字母。可能你的控制檯無法處理utf8。