【发布时间】:2020-07-26 13:38:26
【问题描述】:
使用 Python 自带的locale 模块和str.upper() 方法时,'istanbul'.upper() 返回的结果不正确。
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'tr_TR.UTF-8')
>>> 'tr_TR.UTF-8'
>>> s1 = 'istanbul'
>>> s1.upper()
'ISTANBUL'
如果我安装并使用pyicu,它会按预期工作。
>>> from icu import Locale, UnicodeString
>>> tr = Locale('tr_TR.UTF-8')
>>> s2 = UnicodeString('istanbul')
>>> str(s2.toUpper(tr))
'İSTANBUL'
如何确保 Python 的内置模块和方法在给定的语言环境下正常工作?
【问题讨论】:
标签: python string unicode locale