シングルバイト | 1バイト固定 ASCII文字 | char* |
ダブルバイト | 2バイト固定 Shift-JIS(漢字部位) | char* |
マルチバイト | 1~nバイトの可変 Shift-JIS | char* |
ワイド文字 | ユニコード UTF-8とか | wchar_t* |
WindowsAPIの変換関数
MultiByteToWideChar | Shift-JIS > UTF-8 | char* > wchar_t* |
WideCharToMultiByte | UTF-8 > Shift-JIS | wchar_t > char* |
古い標準関数はマルチバイトにしか対応しておらず、新しい関数はワイド文字が標準化してきている。
つまり、Shift-JISからUTF-8へ標準が移ってきているので、UTF-8に対応しきれていないC標準関数などが必然的に廃れていく。