こんにちは、Sayahamittです。 Macで書いていたC++コードをWindows VC++に持ってきたら文字コードでハマったのでメモしておきます。 今回は引数にUTF8エンコードのstd::string型文字列を取り、ShiftJISエンコードのstd::string文字列を返す関数と、その逆をやる関数を作りました。 バリバリのWindows API依存コードです。ごめんなさいm(__)m Windowsでは内部的な処理にはUnicodeが使われているにも関わらず、コンソールにおける入出力を始めAPIなど、ユーザーとのインターフェースには未だにShift-JISが使われているようで、UTF8など多バイト文字を直接利用出来ません。 WindowsAPIなんて殆ど触ったことがない自分も、もれなくこの問題に引っかかりました。 Win API を利用する場合にはMultiByteToWide