【发布时间】:2019-02-02 08:47:49
【问题描述】:
在 Python 2 中,您可以执行以下操作来获取当前语言环境的字符集:
import string
print string.letters
但是,在 Python 3 中,字符串模块的依赖于语言环境的常量(例如 string.letters、string.lowercase、string.uppercase 等)已被删除。
如何使用 Python 3 获取当前语言环境的字符集?
【问题讨论】:
-
这个问题被建议重复:stackoverflow.com/questions/9561432/… 但是,顾名思义,
ascii_letters返回 ascii 字符 (a-Z),而不是当前定义的语言环境的字符 -
为什么会被否决? +1
-
我的猜测是该功能已被删除,因为它存在问题并且首先过于简化。您可能需要尝试不同的方法,例如查看
unicodedata.category。 -
@wim 我认为标准库无法做到这一点。
unicodedata.category没有提供详细的语言环境信息。re与\w等进行了 locale-aware alpha 测试,但它仅适用于 8 位语言环境,并且“不鼓励使用此标志,因为语言环境机制非常不可靠”。 -
Unicode CLDR 为每个语言环境定义 exemplar characters,这似乎是您想要的。不幸的是,我目前找不到这些图表的来源文件。
标签: python python-3.x locale