我在多个发行版中都遇到了python和本地化字符串的问题。
我使用en_US.UTF-8
语言环境进行编程已经很多年了,没有任何问题。最近,我开始使用诸如pl_PL.UTF-8
之类的其他语言环境,并且遇到一个问题,即datetime.strftime
像以前那样en_US
进行打印。
我的locale
输出在这里:
$ locale
LANG="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_CTYPE="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_ALL=
特定于语言环境的环境变量为:
$ env | grep LANG
LANG=pl_PL.UTF-8
$ env | grep LC
$
在python中,我有以下输出:
>>> import locale
>>> locale.getlocale()
('pl_PL', 'UTF-8')
>>> locale.getdefaultlocale()
('pl_PL', 'UTF-8')
>>> locale.getlocale(locale.LC_TIME)
(None, None)
在这个主题上,我发现精确地设置LC_ALL
的答案是same question:
>>> locale.setlocale(locale.LC_ALL, '')
'pl_PL.UTF-8'
>>> locale.getlocale()
('pl_PL', 'UTF-8')
>>> locale.getdefaultlocale()
('pl_PL', 'UTF-8')
>>> locale.getlocale(locale.LC_TIME)
('pl_PL', 'UTF-8')
我将此行为视为Python本身的问题,而不是正常用法。 Python以这种方式查看语言环境有什么问题?