Unicode 文字列を表す方法はいくつかありますが、最も一般的な方法は次のとおりです。
- でエンコードされ、文字列
UTF-8
に格納されますchar
- でエンコードされ
UTF-16
、16 ビット整数で構成される文字列に格納されます
- でエンコードされ
UTF-32
、32 ビット整数で構成される文字列に格納されます。
UTF-16 および UTF-32 の場合、システムのバイト オーダーを認識し、文字列をビッグ エンディアンまたはリトル エンディアンのどちらで通信するかを決定する必要があります。
という名前の古いエンコーディングがありUCS-2
、このエンコーディングでは 0x10000 未満の Unicode 文字しか表現できません。これを使用しないでください。すべての漢字を表現できるわけではありません。
注意すべきもう 1 つのことは、wchar_t
幅が 2 バイトまたは 4 バイトであるため、一部のシステムでは を保持するために使用でき、他のシステムではUTF-16
文字UTF-32
を保持できることです。
注意すべきもう 1 つの点: ほとんどの文字列長関数は、表される Unicode シンボルの数ではなく、カウントされたバイト数または単語数を返します。
個人的には、すべてを として内部および外部に保存しUTF-8
、必要に応じて 16 ビットまたは 32 ビットのエンコーディングに変換することを好みます。そうすれば、バイトオーダーの問題を回避できます。
すべてが でエンコードされていることを確認すればUTF-8
、ほとんどのものが機能する可能性があります。