2

setlocale() 的默认设置是什么意思?setlocale()默认为“C”(“POSIX”)。但这究竟是什么意思?它的默认字符集和语言是哪个?是“en_US.utf8”吗?

4

2 回答 2

2

从 N1570 开始:

7.11.1.1 setlocale 函数

3语言环境的“C”值指定了 C 翻译的最小环境;区域设置的“”值指定特定于区域设置的本地环境。其他实现定义的字符串可以作为第二个参数传递给 setlocale。

此外,来自脚注 222:

222) ISO/IEC 9945-2 规定了可用于为 C 指定语言环境的语言环境和字符映射格式。

这给了您一个想法(因为脚注严格不是标准规范部分的一部分)“C”在这种情况下的含义。

于 2012-06-10T21:43:18.780 回答
0

语言环境“C”的字符集需要包含所有 7 位 ASCII 字符,排序顺序仅基于 ASCII 字符代码。不需要 ASCII 以外的其他字符。如果正在处理的文本包含该限制集之外的任何字符,则行为未定义。就语言而言, http: //pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html中的所有标准定义都对应于美国英语。

于 2012-06-11T01:34:25.137 回答