utf-8 - 在 vbscript 中读取 utf-8 文本文件

标签 utf-8 character-encoding vbscript

我有一个保存为 UTF-8 的文本文件,当我尝试读取该文件时,它给了我奇怪的字符而不是正确的字符(它包含中文字符)。我怎样才能让它给我正确的汉字?

Option Explicit

Dim objFSO, strTextFile, strData, strLine, arrLines, aniTextFile, aniData, aniLines, aniLine, objTextFile, fso, inputFileList, listFile, fname
Dim iim1, iret, iret2, iret3, i
Const ForReading   = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
strTextFile = "C:\Users\admin\Desktop\ArtistCG\folder.txt"
strData = objFSO.OpenTextFile(strTextFile,ForReading).ReadAll
arrLines = Split(strData,vbCrLf)

aniTextFile = "C:\Users\admin\Desktop\ArtistCG\folder-list.txt"
aniData = objFSO.OpenTextFile(aniTextFile,ForReading).ReadAll
aniLines = Split(aniData,vbCrLf)

For i = 0 To UBound(arrLines)
  strData = objFSO.OpenTextFile(arrLines(i),ForReading).ReadAll
  WScript.Echo strData

  Set listFile = objFSO.OpenTextFile(aniLines(i),ForReading)
  Do While Not listFile.AtEndOfStream
    fName = listFile.ReadLine
    WScript.Echo fName
  Loop
  listFile.Close
Next 

最佳答案

From the documentation :

The FSO can read only ASCII text files. You cannot use the FSO to read Unicode files or to read binary file formats such as Microsoft Word or Microsoft Excel.



因为你有奇怪的字符,我想这有点不正确,文件是在一些 8 位 Windows 代码页中读取的,因为如果它真的只能读取 ASCII,你会看到 ????
无论如何,如果您可以使用ADO , 你可以这样做:
Dim objStream, strData

Set objStream = CreateObject("ADODB.Stream")

objStream.CharSet = "utf-8"
objStream.Open
objStream.LoadFromFile("C:\Users\admin\Desktop\ArtistCG\folder.txt")

strData = objStream.ReadText()

objStream.Close
Set objStream = Nothing

关于utf-8 - 在 vbscript 中读取 utf-8 文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13851473/

相关文章:

java - 在 Java 中处理错误编码的 UTF-16 (?)

vbscript - 使用 VBScript 通过 Twilio HTTP POST 发送 SMS

javascript - Windows 脚本 : VBScript, DOS、JS、Python、

visual-studio-2012 - 如何在本地为 Visual Studio 2012 安装脚本语言文档

javascript - 以安全的方式为 nodeJS 转换流设置编码

php - 无法使用 ' 正确搜索数据库

php - PDO 连接 : UTF-8 declaration with SET NAMES/CHARACTER SET?

c++ - 在 C++ 中将 UTF-8 转换为 ANSI

c# - 如何管理用于XDocument格式化的 "NO-BREAK SPACE"?

java - Struts 2如何支持多种语言的utf-8编码