นี่เป็นอีกวิธีแก้ปัญหาที่ดีสำหรับปัญหา BOM นี่คือสคริปต์VBScript (.vbs) สองตัว
อันแรกสำหรับการค้นหา BOM ในไฟล์และอีกอันสำหรับการฆ่า BOM ที่ถูกสาปในไฟล์ มันใช้งานได้ดีและใช้งานง่าย
เพียงแค่สร้างไฟล์. vbs และวางรหัสต่อไปนี้ลงไป
คุณสามารถใช้สคริปต์ VBScript เพียงแค่ลากและวางไฟล์ที่น่าสงสัยลงในไฟล์. vbs มันจะบอกคุณว่ามี BOM หรือไม่
' Heiko Jendreck - personal helpdesk & webdesign
' http://www.phw-jendreck.de
' 2010.05.10 Vers 1.0
'
' find_BOM.vbs
' ====================
' Kleines Hilfsmittel, welches das BOM finden soll
'
Const UTF8_BOM = ""
Const UTF16BE_BOM = "þÿ"
Const UTF16LE_BOM = "ÿþ"
Const ForReading = 1
Const ForWriting = 2
Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Dim f
f = WScript.Arguments.Item(0)
Dim t
t = fso.OpenTextFile(f, ForReading).ReadAll
If Left(t, 3) = UTF8_BOM Then
MsgBox "UTF-8-BOM detected!"
ElseIf Left(t, 2) = UTF16BE_BOM Then
MsgBox "UTF-16-BOM (Big Endian) detected!"
ElseIf Left(t, 2) = UTF16LE_BOM Then
MsgBox "UTF-16-BOM (Little Endian) detected!"
Else
MsgBox "No BOM detected!"
End If
ถ้ามันบอกคุณว่ามี BOM ให้ไปและสร้างไฟล์. vbs ที่สองด้วยรหัสต่อไปนี้แล้วลากไฟล์ suspicios ไปยังไฟล์. vbs
' Heiko Jendreck - personal helpdesk & webdesign
' http://www.phw-jendreck.de
' 2010.05.10 Vers 1.0
'
' kill_BOM.vbs
' ====================
' Kleines Hilfmittel, welches das gefundene BOM löschen soll
'
Const UTF8_BOM = ""
Const ForReading = 1
Const ForWriting = 2
Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Dim f
f = WScript.Arguments.Item(0)
Dim t
t = fso.OpenTextFile(f, ForReading).ReadAll
If Left(t, 3) = UTF8_BOM Then
fso.OpenTextFile(f, ForWriting).Write (Mid(t, 4))
MsgBox "BOM gelöscht!"
Else
MsgBox "Kein UTF-8-BOM vorhanden!"
End If
รหัสจากHeiko Jendreck