我有一个脚本,是在研究了许多不同的方法之后组合在一起的,我可以在 VBScript 中使用 ADODB 进行编码转换。
Option Explicit
Sub UTFConvert()
Dim objFSO, objStream, file
file = "FileToConvert.csv"
Set objStream = CreateObject( "ADODB.Stream" )
objStream.Open
objStream.Type = 2
objStream.Position = 0
objStream.Charset = "utf-8"
objStream.LoadFromFile file
objStream.SaveToFile file, 2
objStream.Close
Set objStream = Nothing
End Sub
UTFConvert
该文件应该从 UCS-2 Little Endian 或任何可读格式(在限制范围内)转换为 UTF-8。然而问题是,一旦该文件完成转换为 UTF-8,就会有很多NUL
整个文件中每个字母之前和之后的符号,以及xFF
xFE
(UCS-2 LE BOM) 位于文件的开头。这些都是可见的,无需使用任何符号可视化切换。如果能帮助我理解这种转换可能会受到哪些限制,我们将不胜感激。或者我可以采取的任何替代方法。
Your Stream
对象正在将文件加载为 UTF-8 编码文件,从而误解了字节序列。使用读取文件FileSystemObject
实例并用ADODB.Stream
object:
Sub UTFConvert(filename)
Set fso = CreateObject("Scripting.FileSystemObject")
txt = fso.OpenTextFile(filename, 1, False, -1).ReadAll
Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 2 'text
stream.Position = 0
stream.Charset = "utf-8"
stream.WriteText txt
stream.SaveToFile filename, 2
stream.Close
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)