文字に関するメモ

ワイド文字、マルチバイト文字の定義を調べて表にしてみた。
この辺や、この辺を見た。

ワイド文字(wide character) マルチバイト文字(multibyte character)
1文字辺りのバイト数 1バイト以上。全ての文字が等しいサイズのwchar_tで表される。 1文字のバイト数が可変(1バイト文字と2バイト文字が混在している)。1文字あたり1バイト以上の可変長のバイト列として表される。
C言語での型名 wchar_t charなど
UTF-16UTF-32 Shift-JIS、UTF-8
備考 リテラルは先頭に"L"をつける。例えば、wchar_t wc = L'w'; -

それで、multibyte stringをワイド文字列(wide string)に変換するには、mbstowcsを使用すれば良いらしい。ここを参照。
逆は、wcstombs()関数を使う。

変換関数名 用途
mbstowcs() マルチバイト文字列をワイド文字列に変換する。
wcstombs() ワイド文字列をマルチバイト文字列に変換する。