我正在使用带有 C++ 的 ICU 库:
char const *lang = Locale::getDefault().getLanguage();
如果我编写一个小测试程序并在我的 Mac 系统上运行它,我会en
得到lang
. 但是,在我正在进行的一个更大的小组项目中,我得到了root
. 有人知道为什么吗?我确实找到了这个:
http://userguide.icu-project.org/locale/resources
所以我的猜测是,在更大的系统下运行时,没有找到一些 ICU 资源,但我不知道是什么资源,为什么找不到它们,或者如何修复它。
附加信息
/usr/bin/locale
返回:
LANG="en_US.ISO8859-1"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"
如果我写一个小 C 程序:
char const *lang = setlocale( LC_ALL, "" ):
我明白了en_US.ISO8859-1
。
操作系统:Mac OS X 10.6.4 (Snow Leopard)
ICU 版本:4.3.4(最新可通过 MacPorts 获得)。
一点帮助?谢谢。