gpt4 book ai didi

c++ - 为什么 ICU 的 Locale::getDefault() 返回 "root"?

转载 作者:可可西里 更新时间:2023-11-01 18:39:48 25 4
gpt4 key购买 nike

我正在使用 ICU 库和 C++:

char const *lang = Locale::getDefault().getLanguage();

如果我编写一个小的测试程序并在我的 Mac 系统上运行它,我得到 en for 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 获得最新版本)。

有点帮助?谢谢。

最佳答案

root 肯定是一个奇怪的默认语言环境 - 这些天你看不到很多母语为 root 的人。

但严肃地说,在更大的系统上假设没有人调用 setDefault("root") 的变体之一是否安全?

/usr/bin/locale 之类的东西在此系统上返回什么(如果您可以运行它)?

ICU 4.4 现在有一个名为“icuinfo”的测试程序,它是否也返回 root 作为默认语言环境?

这是什么操作系统/平台,哪个版本的 ICU?

关于c++ - 为什么 ICU 的 Locale::getDefault() 返回 "root"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3077571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com