2009-03-03 11 views
1

私は、古いFILEベースのファイル処理関数の代わりにfstreamを使ってC++でUnicodeファイルを開くのに困っています。 _wfopenを使用してファイルを開くときに、使用する文字エンコーディングを指定するモードを指定できます。例:wifstreamは_wfopenの「mode」パラメータと同等ですか?

_wfopen_s(&file, fileName, unicode ? L"r+, ccs=UTF-16LE" : L"r+"); 

これは問題なく動作します。しかし、wifstreamを使用すると、ファイルの先頭にバイトオーダーマークが表示され、残りのファイルは0x00でインターレースされたメモリに表示されます。明らかに、各文字をバイトとして読み取っているだけです。

私の質問です:fstreamsで使用するための上記の 'mode'パラメータに相当するものはありますか?もしそうでなければひどいことではない、私は単にFILEよりもストリームの構文を好む。

ありがとうございます!

答えて

3

ストリームの変換ファセットを使用して設定を試すことができます。 ファイルcodecvt.hcodecvt.cppを例として確認してください。

関連する問題