Encoding 在Vbscript中将UTF-8文件转换为UTF-16 BE文件
是否有任何方法可以在VBscript中将UTF-8转换为UTF-16 我有以下代码,但只转换为UTF-16 LE。 我需要输出为UTF-16 beEncoding 在Vbscript中将UTF-8文件转换为UTF-16 BE文件,encoding,utf-8,vbscript,data-conversion,utf-16,Encoding,Utf 8,Vbscript,Data Conversion,Utf 16,是否有任何方法可以在VBscript中将UTF-8转换为UTF-16 我有以下代码,但只转换为UTF-16 LE。 我需要输出为UTF-16 be Sub Utf8ToUtf16Le(fileIn,fileOut) Set FSO = CreateObject("Scripting.FileSystemObject") Set oStream = CreateObject ("ADODB.Stream") With oStream .Open .Typ
Sub Utf8ToUtf16Le(fileIn,fileOut)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oStream = CreateObject ("ADODB.Stream")
With oStream
.Open
.Type = adTypeText
.Charset = "utf-8"
.LoadFromFile fileIn
FSO.OpenTextFile(fileOut, 2, True, True).Write .ReadText
.Close
End With
End Sub
如果输出中需要BOM表,我们可以使用
.Charset = "utf-16be"
.WriteText ChrW(&hFEFF)
.WriteText inputStream.ReadText
或者,正如Kul Tigin所指出的,我们可以将
.Charset
属性从utf-16be
更改为unicodeff
,谢谢!这很有效!但我有一个问题:为什么我的文件输出没有字节顺序标记?不是我需要的,我只是想理解……SkReNATO,只是猜测,但是默认情况下,所有的VBS字符串都是UTF16,可能编码器不考虑BOM是必需的。如果您需要它,只需在.WriteText-inputStream.ReadText
@skrena之前添加.WriteText-ChrW(&hFEFF)
,即可将字符集utf-16be
替换为unicodeff
,然后它将按照您的预期工作。
.Charset = "utf-16be"
.WriteText ChrW(&hFEFF)
.WriteText inputStream.ReadText