Oracle Solaris でのアプリケーションの国際化とローカライズ

印刷ビューの終了

更新: 2014 年 7 月
 
 

文字および文字列の処理

文字および文字列の処理に使用する文字コードは、2 つのグループに分類できます。

マルチバイト (ファイルコード)

ファイルコードは、テキストデータの交換とファイルへの格納に使用されます。基盤のシステムに関係なく、ビッグエンディアンという固定のバイトオーダーが使用されています。UTF-8EUC、シングルバイトコードセット、BIG5Shift-JISPCKGBKGB18030 などのコードセットがこのカテゴリに含まれます。このセクションで関数を説明する文脈では、現在のロケールのコードセットがシングルバイトコードセットの場合でも、マルチバイト文字という用語がこのコードセットを指す一般的な用語になります。

ワイド文字 (プロセスコード)

プロセスコードは内部処理に使用される文字の固定幅の表現です。ここではプラットフォームのネイティブのバイトオーダーが使用されており、ビッグエンディアンまたはリトルエンディアンの場合があります。UTF-32UCS-2UCS-4 などのエンコーディングはワイド文字のエンコーディングになることがあります。

マルチバイトデータとワイド文字データ間の変換が必要になることはよくあります。プログラムがファイルから入力を取得すると、fscanf()fwscanf() などの入力関数を使用するか、入力後に mbtowc()mbsrtowcs() などの変換関数を使用して、ファイル内のマルチバイトデータがワイド文字のプロセスコードに変換されます。ワイド文字形式からマルチバイト文字形式に出力データを変換するには、fwprintf()fprintf() などの出力関数を使用するか、出力前に wctomb()wcsrtombs() などの変換関数を適用します。

次の各セクションでは、文字、ワイド文字、対応するデータ型を処理するための関数について説明します。