Macros 如何将文本文件的编码格式从Unicode更改为UTF-8
执行此代码后,surya.msg的编码格式是“ANSCII”,但我希望它是“UTF-8”可以使用Macros 如何将文本文件的编码格式从Unicode更改为UTF-8,macros,vbscript,Macros,Vbscript,执行此代码后,surya.msg的编码格式是“ANSCII”,但我希望它是“UTF-8”可以使用FileSystemObject类的OpenTextFile()方法以常规方式打开Unicode编码的文本文件。只需传递第四个(“格式”)参数的True/-1 Const adTypeText = 2 Const adSaveCreateOverWrite = 2 Dim inputFile, outputFile inputFile = "input_file.txt" outpu
FileSystemObject
类的OpenTextFile()
方法以常规方式打开Unicode编码的文本文件。只需传递第四个(“格式”)参数的True
/-1
Const adTypeText = 2
Const adSaveCreateOverWrite = 2
Dim inputFile, outputFile
inputFile = "input_file.txt"
outputFile = "output_file.txt"
Dim inputStream
Set inputStream = WScript.CreateObject("adodb.stream")
With inputStream
.Type = adTypeText
.Charset = "unicode"
.Open
.LoadFromFile inputFile
End With
Dim outputStream
Set outputStream = WScript.CreateObject("adodb.stream")
With outputStream
.Type = adTypeText
.Charset = "utf-8"
.Open
.WriteText inputStream.ReadText
.SaveToFile outputFile, adSaveCreateOverWrite
End With
inputStream.Close
outputStream.Close
要将文本编码为UTF-8,需要使用ADO流
类
strText = objFSO.OpenTextFile(inputFile, , , True).ReadAll()
有关Windows支持的字符编码列表,请查看以下注册表项:
Const adTypeText = 2
Const adSaveCreateOverWrite = 2
With CreateObject("ADODB.Stream")
.Type = adTypeText
.Charset = "utf-8"
.Open
.WriteText strText
.SaveToFile "D:\A4\Message_tool\surya.msg", adSaveCreateOverWrite
End With
.OpenTextFile方法的第四个/format参数采用三态,而不是布尔值。@Ekkehard.Horner-Yep。但是你可以对Unicode使用
True
,对ASCII使用False
来达到同样的效果。@Bond-也许你可以,但你不应该。此外,你不应该为了获得更好的知识而坚持不良做法:-1.@Ekkehard.Horner LOL,随便什么。程序员利用True=-1
和False=0
的时间比我待的时间长。在C++中,(1)循环是“坚持坏习惯”。@邦德-您的猜测是正确的,因为C++中的一个无休止循环被表示为<代码>(true)或<代码>((;))< /COD>。code>while(1)是很好的C89/90,但由于在C99标准中引入了布尔数据类型,因此变得过时了。
Const adTypeText = 2
Const adSaveCreateOverWrite = 2
With CreateObject("ADODB.Stream")
.Type = adTypeText
.Charset = "utf-8"
.Open
.WriteText strText
.SaveToFile "D:\A4\Message_tool\surya.msg", adSaveCreateOverWrite
End With
HKEY_CLASSES_ROOT\MIME\Database\Charset