No.416
0
回数0
優先度0
発生日2016/11/20
仮完了
完了日
期限
タイトルVBScriptのヒント
サブタイトルADODB.Streamオブジェクトを使ってBOMなしUTF-8のファイルを作成する方法
内容
Sub saveFile(filename, text)
On Error Resume Next

' ADODB.Streamのモード
Dim adTypeBinary : adTypeBinary = 1
Dim adTypeText : adTypeText = 2
Dim adSaveCreateOverWrite : adSaveCreateOverWrite = 2

' ADODB.Streamを作成
Dim pre : Set pre = CreateObject("ADODB.Stream")
' 最初はテキストモードでUTF-8で書き込む
pre.Type = adTypeText
pre.Charset = "UTF-8"
pre.Open()
pre.WriteText(text)
' バイナリモードにするためにPositionを一度0に戻す
' Readするためにはバイナリタイプでないといけない
pre.Position = 0
pre.Type = adTypeBinary
' Positionを3にしてから読み込むことで最初の3バイトをスキップする
' つまりBOMをスキップします
pre.Position = 3
Dim bin : bin = pre.Read()
pre.Close()

' 読み込んだバイナリデータをバイナリデータとしてファイルに出力する
' ここは一般的な書き方なので説明を省略
Dim stm : Set stm = CreateObject("ADODB.Stream")
stm.Type = adTypeBinary
stm.Open()
stm.Write(bin)
stm.SaveToFile filename, adSaveCreateOverWrite ' force overwrite
stm.Close()

End Sub
区分
ステータス
中区分個人
小区分DEV
発生元
発生元担当
対応大人になったら肺呼吸
対応2
連絡先
対応者新実
URL
0
大区分todo
0
登録日2016-11-20 11:56:14
最終アクセス日2016-11-20 11:56:14
更新日2016-11-21 21:47:52