ADODB.Stream.SaveToFileを使用してUTF-8形式で保存した場合、作成されたファイルの先頭にBOMが追加されてしまいます。
UTF-8N形式でファイルを保存する、または、UTF-8形式のファイルのBOMを除去するにはどうすればよいでしょうか?
次のページも拝見しましたが、ADODB.Streamオブジェクトを使用するような方法があれば幸いです。
http://www.geocities.co.jp/SilkRoad/4511/vb/utf8.htm
開発環境: Win XP(Pro) & VB6(SP6)
バイナリモードでBOM分スキップしたものを再度Writeすればどうでしょうか?
Const adTypeText = 2
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Dim bin() As Byte
With CreateObject("ADODB.Stream")
.Open
.Type = adTypeText
.Charset = "UTF-8"
.WriteText "UTF-8Nのテキストファイル"
.Position = 0
.Type = adTypeBinary
.Position = 3
bin = .Read
.Close
.Open
.Write bin
.SaveToFile "ほげ.txt", adSaveCreateOverWrite
.Close
End With
Blueさん、ご回答ありがとうございます。
お教えいただいた方法により、希望通りUTF-8N形式でファイルを保存することができました。
どうもありがとうございました。
ツイート | ![]() |