24 六月, 2006
python: locale - setlocale
错误:"locale.Error : unsupported locale setting"
locale.setlocale,最终调用本地OS上的setlocale的c/c++库。
如果本地OS不支持locale,或者本地OS的locale格式不同于locale模块的帮助文档中的描述,调用setlocale都会引发以上异常
以winxp简体中文,python 2.4为例,locale.setlocale(0,'')会返回locale字符串"Chinese_People's Republic of China.936",而不是locale.getdefaultlocale返回的"zh_CN.cp936",更多设置,需参考VC++的setlocale方法。而在中文Linux上,同样的方法,会返回标准的"xx_XX.xxx"格式字符串,譬如"zh_CN.GB18030",参考POSIX的setlocale man页。
严格说,这不算是bug。不过,为了提高Python程序的可移植性,保证这门语言的平台无关特性,最好能在将来的版本中解决这个问题
最新回复
发表评论



