Python语言环境问题

时间:2019-04-13 13:08:22

标签: python-3.x utf-8 locale

我在多个发行版中都遇到了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以这种方式查看语言环境有什么问题?

0 个答案:

没有答案