UTF-8 から改めて、元の文字コードを利用して戻すと、「~」に戻りますが、Windows-31J で読み込み、UTF-8 に変換、Shift_JIS で出力 Shift_JIS で読み込み、UTF-8 に変換、Windows-31J で出力 のように異なる文字コードにすると、文字化けします。
今回は、Windows API の MultiByteToWideChar() と WideCharToMultiByte() を使って変換を行うライブラリ(ヘッダーオンリー)を作ってみました(文末の strconv2.h を保存してお使いください。C++専用です。Cでは使えません)。また、内部的にワイド文字列を経由することで シフトJIS⇔UTF-8 の変...