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 を除去する。 »