タグ別アーカイブ: 文字コード変換

UTF8なstring入れたらShiftJISなstring出てくる関数作った

こんにちは、Sayahamittです。

 

Macで書いていたC++コードをWindows VC++に持ってきたら文字コードでハマったのでメモしておきます。

 

今回は引数にUTF8エンコードのstd::string型文字列を取り、ShiftJISエンコードのstd::string文字列を返す関数と、その逆をやる関数を作りました。

バリバリのWindows API依存コードです。ごめんなさいm(__)m

 

Windowsでは内部的な処理にはUnicodeが使われているにも関わらず、コンソールにおける入出力を始めAPIなど、ユーザーとのインターフェースには未だにShift-JISが使われているようで、UTF8など多バイト文字を直接利用出来ません。

WindowsAPIなんて殆ど触ったことがない自分も、もれなくこの問題に引っかかりました。

Win API を利用する場合にはMultiByteToWideCharメソッドとWideCharToMultiByteメソッドを用いてUTF8とShiftJISの相互変換が実現できるようです。

続きを読む