它看起來像你有你的字符串常量究竟是不是在cp1252
編碼的字節串,這是使str.isalpha
在您的語言環境中正常工作所必需的。你不會說你在什麼環境下輸入。我可以從locale
的回答中得知您在Windows上;也許你從某個IDE或cp850
從命令提示窗口獲得UTF-8
。
你在屏幕上看到的內容往往對調試的幫助很少。你看到的不是你所擁有的。內置的功能是(或想成爲)你的朋友。它將以ASCII的形式明確顯示您實際擁有的內容。 [Python的3:repr
更名爲ascii
,並有一個新的repr
這是不是你想要的東西]
嘗試輸入s = "your string constant with 'accented' letters"
然後print repr(s)
和編輯您的問題,以顯示結果(複製/粘貼,不重新輸入)。還要說明你正在使用的Python版本。
另一個可能的夥伴是'unicodedata.name'...見下文。
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'Finnish')
'Finnish_Finland.1252'
>>> s = '\xe4\xf6\xe5'
>>> import unicodedata
>>> for c in s:
... u = c.decode('1252')
... print repr(c), repr(u), unicodedata.name(u, '<no name>')
...
'\xe4' u'\xe4' LATIN SMALL LETTER A WITH DIAERESIS
'\xf6' u'\xf6' LATIN SMALL LETTER O WITH DIAERESIS
'\xe5' u'\xe5' LATIN SMALL LETTER A WITH RING ABOVE
>>> s.isalpha()
True
您可以將上述結果與this chart進行比較。
當然好了:)謝謝。 – user250765 2010-11-26 15:49:36