다음은 BOM 문제에 대한 또 다른 좋은 솔루션입니다. 이들은 두 개의 VBScript (.vbs) 스크립트입니다.
하나는 파일에서 BOM을 찾기위한 것이고 다른 하나는 파일에서 손상된 BOM을 죽이기위한 것입니다. 꽤 잘 작동하고 사용하기 쉽습니다.
.vbs 파일을 만들고 다음 코드를 붙여 넣으십시오.
의심스러운 파일을 .vbs 파일로 끌어서 놓기 만하면 VBScript 스크립트를 사용할 수 있습니다. 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 의 코드입니다 .