我想要得到一个unicode版本的calendar.month_abbr[6]
。如果我没有指定区域设置的编码,我不知道如何将字符串转换为unicode。下面的示例代码显示我的问题:如何在Python中获取unicode月份名称?
>>> import locale
>>> import calendar
>>> locale.setlocale(locale.LC_ALL, ("ru_RU"))
'ru_RU'
>>> print repr(calendar.month_abbr[6])
'\xb8\xee\xdd'
>>> print repr(calendar.month_abbr[6].decode("utf8"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb8 in position 0: unexpected code byte
>>> locale.setlocale(locale.LC_ALL, ("ru_RU", "utf8"))
'ru_RU.UTF8'
>>> print repr(calendar.month_abbr[6])
'\xd0\x98\xd1\x8e\xd0\xbd'
>>> print repr(calendar.month_abbr[6].decode("utf8"))
u'\u0418\u044e\u043d'
任何想法如何解决这个问题?该解决方案不必看起来像这样。任何解决方案,给我在unicode缩写月份名称是好的。
如果Unicode转换成功,我应该还是能够做到就可以了再版。所以这不应该是问题。感谢您的链接。我会检查出来。 – 2009-11-30 19:06:51
'locale.getlocale()'工作。谢谢。 – 2009-12-01 18:57:55