可能重複:
Python returning the wrong length of string when using special characters蟒UTF-8行爲
我在windows-1251
從文件中讀取多語言的字符串,例如s="qwe абв"
(俄文第二部分),然後:
for i in s.decode('windows-1251').encode('utf-8').split():
print i, len(i)
我得到:
qwe 3
абв 6
哦,上帝,爲什麼? o_O
我猜是這樣的...感謝。 – scythargon
這就是你爲什麼會發生這種情況的正確答案 - 如果你對某種方式感興趣以達到你所期望的(即能夠計數字符),使用編解碼器模塊打開你的文件'閱讀中......這會在閱讀時將它強制轉換爲unicode,而使用本地unicode字符串時,len()方法將返回字符數。 – jlmcdonald
@jlmcdonald或只是不重新編碼爲utf-8 - s.decode('windows-1251')給出一個unicode字符串。 – lvc