gpt4 book ai didi

text - 需要在vbscript中将文本文件从UTF8转换为Unicode

转载 作者:行者123 更新时间:2023-12-02 10:42:01 24 4
gpt4 key购买 nike

我的文件夹中有一堆文本文件,我需要将其编码更改为 Unicode,我希望有一个脚本来执行此操作,而不是手动打开文件并将它们另存为 Unicode。

这些文件目前采用 UTF-8 编码,而我极其有限的脚本编写能力无法解决这个问题。我发现下面的代码可以从 ANSI 转换为 Unicode,当我使用此代码时,它确实将其转换为 Unicode,但它弄乱了字符,因此转换实际上不起作用。有什么想法吗?提前致谢。

Set fso = CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.GetFolder("C:\test")
Set oFiles = oFolder.files

For each file in oFiles
If Right(file.Name, 3) = "txt" Then
Set ANSIFile = fso.OpenTextFile(file.path, 1, False, False)
ANSIContent = ANSIFile.ReadAll
Set UNICODEFile = fso.OpenTextFile(file.path, 2, False, True)
UNICODEFile.Write ANSIContent
End If
Next

最佳答案

不幸的是,VBScript 本身不支持这种类型的转换。您可以使用ADODB.Stream不过,对象:

Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 2 'text
stream.Charset = "utf-8"
stream.LoadFromFile "C:\input.txt"
text = stream.ReadText
stream.Close

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\output.txt", 2, True, True)
f.Write text
f.Close

或者更精简一点:

Set fso = CreateObject("Scripting.FileSystemObject")

Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 2 'text
stream.Charset = "utf-8"
stream.LoadFromFile "C:\input.txt"
fso.OpenTextFile("C:\output.txt", 2, True, True).Write stream.ReadText
stream.Close

如果您想替换现有文件,则必须使用第一个版本并使用相同的文件进行输入和输出。使用这样的循环来迭代文件夹中的所有文件:

Set fso = CreateObject("Scripting.FileSystemObject")
Set stream = CreateObject("ADODB.Stream")

For Each f In fso.GetFolder("C:\source\folder").Files
stream.Open
stream.Type = 2 'text
stream.Charset = "utf-8"
stream.LoadFromFile f.Path
text = stream.ReadText
stream.Close

fso.OpenTextFile(f.Path, 2, True, True).Write text
Next

关于text - 需要在vbscript中将文本文件从UTF8转换为Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com