setlocale()&#39的默认设置是什么意思? setlocale()默认为" C" (" POSIX&#34)。但那究竟是什么意思呢?哪个是默认的字符集和语言?是" en_US.utf8" ?
答案 0 :(得分:2)
从N1570:
7.11.1.1 setlocale函数
3 区域设置的“C”值指定C转换的最小环境;一个值 “”用于语言环境指定特定于语言环境的本机环境。其他 实现定义的字符串可以作为第二个参数传递给setlocale。
另外,从脚注222:
222)ISO / IEC 9945-2规定了可用于指定C语言环境的语言环境和charmap格式。
这给了你一个想法(因为脚注严格地说不是标准的规范部分的一部分)“C”在这种情况下意味着什么。
答案 1 :(得分:0)
区域设置“C”的字符集必须包含所有7位ASCII字符,并且整理顺序仅基于ASCII字符代码。不需要ASCII以外的其他字符。如果正在处理的文本包含该有限集之外的任何字符,则行为未定义。就语言而言,http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html中的所有标准定义都与美国英语相对应。