Python string.letters不包括区域设置符号

Python string.letters不包括区域设置符号,python,string,locale,diacritics,alphabet,Python,String,Locale,Diacritics,Alphabet,我试图根据给定的语言环境从python字符串模块中获取字母表,但没有成功(也就是说,使用了发音符号,即法语中的èèè)。下面是一个简单的例子: import locale, string locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') print string.letters # shows ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz locale.setlocale(locale.L

我试图根据给定的语言环境从python字符串模块中获取字母表,但没有成功(也就是说,使用了发音符号,即法语中的èèè)。下面是一个简单的例子:

import locale, string

locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
print string.letters
# shows ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

locale.setlocale(locale.LC_ALL, 'fr_FR.UTF-8')
print string.letters
# also shows ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
在python文档中,有这样的说法,但它似乎不适合我

我做错了什么?这是获得语言相关字母表的正确方法吗

编辑:设置后,我刚刚检查了区域设置
print locale.getlocale()
,它已正确更改

在Python2.7中(Python3.x中没有string.letters),如果您将区域设置设置为'fr_fr'(相当于'fr_fr.ISO8859-1',而不是'fr_fr.UTF-8',则可以工作

所以\xaa是字符“ª”、\xab“«”、\xd1是“ñ”等等。但编码表示确实被破坏了


我强烈建议您阅读以下内容:

可能它不适用于
UTF-8
,但仅适用于
cp125x
-请参阅,可能是因为您的区域设置没有更新检查
locale.getlocale(locale.LC_ALL)
之后
setlocale
如果您离开
.UTF-8
部分,您会收到更多的字母,但是我找不到哪种编码……离开
。UTF-8
不会改变任何东西
>>> import locale, string
>>> locale.setlocale(locale.LC_ALL, 'es_ES')
'es_ES'
>>> string.letters
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\xaa\xb5\xba\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'
>>> locale.setlocale(locale.LC_ALL, 'es_ES.UTF-8')
'es_ES.UTF-8'
>>> string.letters
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'