OS语言环境支持在Python中使用

15 python locale

以下Python代码适用于我的Windows机器(Python 2.5.4),但不适用于我的Debian机器(Python 2.5.0).我猜这是依赖操作系统的.

import locale
locale.setlocale( locale.LC_ALL, 'English_United States.1252' )
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/locale.py", line 476, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting
Run Code Online (Sandbox Code Playgroud)

问题:

  • 它依赖于操作系统吗?
  • 如何在Python中找到受支持的区域设置列表?
  • 如何在Windows语言环境和Debian语言环境之间进行匹配?

Yoa*_*che 21

它取决于操作系统.

要获取本地可用列表,您可以locale -a在shell中使用

我认为你想要的本地就像是 Windows-1252

  • 在Windows中没有语言环境 (7认同)

小智 9

尝试

apt-get install locales-all
Run Code Online (Sandbox Code Playgroud)

对我来说,它就像一个魅力

  • 如果您想要更具选择性,可以安装一个language-pack-*软件包,例如language-pack-de. (2认同)

gim*_*mel 8

看看locale.locale_alias字典里面.

>>> import locale
>>> len(locale.locale_alias)
789
>>> locale.locale_alias.keys()[:5]
['ko_kr.euc', 'is_is', 'ja_jp.mscode', 'kw_gb@euro', 'yi_us.cp1255']
>>> 
Run Code Online (Sandbox Code Playgroud)

(在我的2.6.2安装中有789个区域设置名称.)

  • 实际上,不一定支持别名字典中定义的语言环境. (5认同)