開発環境 vs2008
CStdioFile ReadString で読み込むと日本語の部分が文字化けします。
いろいろ探してみると、ビルド環境をマルチバイト文字列にする
とか、setlocale(LC_ALL,jpn); を使用するとありますが、文字化けします。
CStdioFile cFile;
CString cStr;
cFile.Open(path.txt,CFile::modeRead);
cFile.ReadString(cStr); <--- 日本語部分が文字化け
です。
アドバイスお願いたします。
- path.txt のencodingは何ですか? Shift_jis? UTF-8? UTF-16? ほかのなにか?
- ビルド環境をマルチバイト文字列にしていますか?
- 文字化けしていることをどうやって確認しましたか?
>- path.txt のencodingは何ですか? Shift_jis? UTF-8? UTF-16? ほかのなにか?
UTF-8 です。
>- ビルド環境をマルチバイト文字列にしていますか?
しています。
>- 文字化けしていることをどうやって確認しましたか?
TRACE(%s, cStr); です。
よろしくお願いいたします。
無理です。マルチバイト環境ではShift_JISとみなされます。
ReadStringののち、UTF-8→Shift_JIS変換を施さなくてはなりません。
# BOM付きUTF-8だったらアタマの3文字を捨てる処理も必要です。
ここらへん↓参照。
http://code.msdn.microsoft.com/UTF8Helpers
http://blogs.wankuma.com/episteme/archive/2010/12/18/195853.aspx
fopenを使うとか。
http://msdn.microsoft.com/ja-jp/library/z5hh6ee9%28v=vs.80%29.aspx
>encoding に指定できる値には、UNICODE、UTF-8、および UTF-16LE があります。
皆様 ありがとうございました。
UTF8 -> SJIS変換を行うこととしました。
ありがとうございます。