Cでは、文字列はchar
の配列で表されることが知られています。C文字列操作における中国語文字の扱い
ほとんどの32ビットプロセッサでは、char
は1バイトまたは8ビットをとります。文字列は、byte
の配列で構成されます。
中国語や日本語などの拡張文字は、となり、ビットが8ビットより多くなるため、これについては少し混乱しています。
たとえば、char array[100]
のような構文を使用して、英字の配列が定義されているのと同じ方法で、中国語の配列を定義できることをテストしました。だから私の質問は次のとおりです:
一般的な8ビット文字と8ビット以上の文字の間のギャップを埋めるようにして、上記のように扱われるメカニズムがありますか? 。
代わりにwchar_tを使うべきでしょう。これはワイド文字とそのC/C++での使用についてもう少し説明します。 http://en.wikipedia.org/wiki/Wide_character#C.2FC.2B.2B –
MBCSまたはマルチバイト文字セットと呼ばれるものを調べる必要があります。 –
@JesusRamos: 'wchar_t'型(むしろ、それを使用するコード)は、どのエンコーディングが使用されているのか、あるいはUnicodeをサポートしているのかわからないので、移植性があまりありません。 –