为什么 nl_langinfo(CODESET) 与 locale charmap 不同?

use*_*121 5 c c++ locale

这篇文章起源于如何获取你的系统在c/c++中使用什么样的编码?

我尝试使用

nl_langinfo(CODESET)
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*wis 5

你需要先打电话

setlocale(LC_ALL, "");
Run Code Online (Sandbox Code Playgroud)

nl_langinfo 始终提供有关当前语言环境的信息。