2011年12月28日水曜日

VCでUTF-8 BOMなしファイル作成方法

UTF-8版のLuaで、読み込みできるファイルを作る場合
FILE pFP = NULL ;
_wfopen_s( &pFP, L"FileName", L"w,ccs=UTF-8" ) ;

これでUTF-8のファイルができるけど、BOM(シグネチャ)ありしか
パラメータでは選択できず、BOM(シグネチャ)なしを指定できない。
VisualStudioのエディタでは指定できるのに・・・・。

どうやっても書かれてしまうのは仕方ないので、そのすぐ後でSeekする。
fseek( pFP, 0, SEEK_SET ) ;

これで読めるようになった。

スマートな方法はないのか?
open時にccsの指定はなしか、バイナリにしてしまって、
文字列を自分でUTF-8に変換して出力すれば大丈夫そうな気もするが。。。