2009-10-13 23 views
3

这篇文章来源于How do you get what kind of encoding your system uses in c/c++?为什么nl_langinfo(CODESET)与locale charmap不同?

我尝试使用

nl_langinfo(CODESET) 

,但我得到了ANSI_X3.4-1968而不是UTF-8(这是我得到打字的时候:区域设置字符映射)。我使用nl_langinfo()错误吗?我应该如何使用它?

+0

如果您更详细地阅读原始帖子答案中的联系信息,则根本不会遇到这个问题... – ephemient

回答

3

您需要首先调用

setlocale(LC_ALL, ""); 

了nl_langinfo总是提供关于当前区域设置信息。

+0

为了扩展这一点,C程序始终以当前语言环境作为“C”语言环境 - 这个答案中的代码片段就是你用系统默认语言环境代替的答案。 – caf

+0

好了thx现在可以工作 – user176121

+0

这个问题可以出现在Yocto或任何检查区域设置。您可以导出,例如LC_ALL = export LC_ALL = en_US.UTF-8 –

相关问题