UTF-8N形式でファイルを保存するには?

解決


まいろ  2007-02-22 00:48:41  No: 135404

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)


Blue  2007-02-22 01:21:37  No: 135405

バイナリモードで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


まいろ  2007-02-22 01:53:00  No: 135406

Blueさん、ご回答ありがとうございます。

お教えいただいた方法により、希望通りUTF-8N形式でファイルを保存することができました。
どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加