tags:

views:

1003

answers:

2

The following Python code works on my Windows machine (Python 2.5.4), but doesn't on my Debian machine (Python 2.5.0). I'm guessing it's OS dependent.

import locale
locale.setlocale( locale.LC_ALL, 'English_United States.1252' )

I receive the following error:

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

Questions:

  • Is it OS dependent?
  • How can I find the supported locale list within Python?
  • How can I match between Windows locales and Debian locales?
+2  A: 

It is OS dependent.

To get the list of local available you can use locale -a in a shell

I think the local you want is something like Windows-1252

Yoann Le Touche
+3  A: 

Look inside the locale.locale_alias dictionary.

>>> 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']
>>>

(In my 2.6.2 installation there are 789 locale names.)

gimel
Actually, the locales defined in the alias dictionary are not necessarily supported.
krawyoti