2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« バッチファイルだけで、UnicodeLE や UTF-8 の BOM を除去する。 | トップページ | IEを使って、UTF-8 の BOM を除去する。 »

2009年5月18日 (月)

ADODB.Streamを使って、UTF-8 の BOM を除去する。

UTF-8 に BOM があれば、削除して、書き戻します。

utf8-bom.vbs ファイル...

Option Explicit
Const adTypeBinary=1
Const adTypeText=2
Const adSaveCreateOverWrite=2
Dim Path
Dim Src
Dim BOM
Dim Buf

Set Src=CreateObject("ADODB.Stream")
Src.Open
Src.Type=adTypeText
Src.Charset="utf-8"
Src.WriteText ""
Src.Position=0
Src.Type=adTypeBinary
BOM=CStr(Src.Read(3))

For Each Path In WScript.Arguments
  Src.LoadFromFile Path
  Buf=CStr(Src.Read(3))
  If Buf=BOM Then
    Buf=Src.Read(-1)
    Src.Position=0
    Src.Write Buf
    Src.SetEos
    Src.SaveToFile Path,adSaveCreateOverWrite
  End If
Next
Src.Close
Set Src=Nothing

« バッチファイルだけで、UnicodeLE や UTF-8 の BOM を除去する。 | トップページ | IEを使って、UTF-8 の BOM を除去する。 »