C++ 为什么nl_langinfo(代码集)与locale charmap不同?

C++ 为什么nl_langinfo(代码集)与locale charmap不同?,c++,c,locale,C++,C,Locale,这篇文章源于 我试着用 nl_langinfo(CODESET) 但我得到的是ANSI_X3.4-1968,而不是UTF-8(这是我在键入:locale charmap时得到的)。我使用nl_langinfo()错误吗?我应该如何使用它?您需要先打电话 setlocale(LC_ALL, ""); nl_langinfo始终提供有关当前区域设置的信息。要扩展此信息,C程序总是以当前区域设置作为“C”区域设置启动-此答案中的代码段是用来将其替换为系统默认区域设置的。此问题可能出现在Yocto或

这篇文章源于

我试着用

nl_langinfo(CODESET)

但我得到的是ANSI_X3.4-1968,而不是UTF-8(这是我在键入:locale charmap时得到的)。我使用nl_langinfo()错误吗?我应该如何使用它?

您需要先打电话

setlocale(LC_ALL, "");

nl_langinfo始终提供有关当前区域设置的信息。

要扩展此信息,C程序总是以当前区域设置作为“C”区域设置启动-此答案中的代码段是用来将其替换为系统默认区域设置的。此问题可能出现在Yocto或任何检查区域设置的程序中。例如,您可以导出LC_ALL=export LC_ALL=en_US.UTF-8如果您更彻底地阅读原始帖子答案中的手册页,您就不会遇到这个问题。。。