以下の表に、Shift-JIS(日本語文字)または UTF-8(Unicode 文字)のロケールカテゴリを示します。
表 1-7 デフォルトの Shift-JIS ロケールと UTF-8 ロケール
関数 |
説明 |
__use_sjis_ctype
|
文字セットに、日本語文字の Shift-JIS マルチバイトエンコーディングが設定されます。 |
__use_utf8_ctype
|
文字セットに、すべての Unicode 文字の UTF-8 マルチバイトエンコーディングが設定されます。 |
以下に Shift-JIS および UTF-8 エンコーディングの作用を説明します。
-
通常の ctype
関数は、Shift-JIS での独立文字となるすべてのバイト値に対して正常に動作します。例えば、isalpha()
によって半角カタカナはアルファベットとして処理されます。Shift-JIS では、半角カタカナは 0xA6
~ 0xDF
の範囲でシングルバイトとしてエンコードされています。
UTF-8 エンコーディングでは、ASCII 文字セットと同じ自己完結した文字セットを使用します。
-
mbrtowc()
、mbsrtowcs()
、wcrtomb()
などのマルチバイト変換関数は、すべて、Unicode のワイド文字列と Shift-JIS または UTF-8 のマルチバイト文字列の間で変換を行います。
-
printf("%ls")
では Unicode ワイド文字列が Shift-JIS または UTF-8 出力に変換され、scanf("%ls")
では Shift-JIS または UTF-8 入力が Unicode ワイド文字列に変換されます。