文字に関するメモ
ワイド文字、マルチバイト文字の定義を調べて表にしてみた。
この辺や、この辺を見た。
ワイド文字(wide character) | マルチバイト文字(multibyte character) | |
---|---|---|
1文字辺りのバイト数 | 1バイト以上。全ての文字が等しいサイズのwchar_tで表される。 | 1文字のバイト数が可変(1バイト文字と2バイト文字が混在している)。1文字あたり1バイト以上の可変長のバイト列として表される。 |
C言語での型名 | wchar_t | charなど |
例 | UTF-16、UTF-32 | Shift-JIS、UTF-8 |
備考 | リテラルは先頭に"L"をつける。例えば、wchar_t wc = L'w'; | - |
それで、multibyte stringをワイド文字列(wide string)に変換するには、mbstowcsを使用すれば良いらしい。ここを参照。
逆は、wcstombs()関数を使う。
変換関数名 | 用途 |
---|---|
mbstowcs() | マルチバイト文字列をワイド文字列に変換する。 |
wcstombs() | ワイド文字列をマルチバイト文字列に変換する。 |