2

setlocale() のデフォルト設定の意味は何ですか? setlocale()のデフォルトは "C" ("POSIX") です。しかし、それは正確にはどういう意味ですか? デフォルトの文字セットと言語はどれですか? 「en_US.utf8」ですか?

4

2 に答える 2

2

N1570 から:

7.11.1.1 setlocale 関数

3 locale の値「C」は、C 翻訳の最小環境を指定します。locale の値 "" は、ロケール固有のネイティブ環境を指定します。その他の実装定義の文字列は、setlocale の 2 番目の引数として渡すことができます。

また、脚注 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 に答える