Ich habe eine Textdatei als UTF-8 gespeichert und wenn ich versuche, die Datei zu lesen, gibt es mir seltsame Zeichen und nicht die richtigen Zeichen (es enthält chinesische Schriftzeichen). Wie kann ich dafür sorgen, dass es mir die richtigen chinesischen Schriftzeichen gibt?Lesen utf-8 Textdatei im Vbscript
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
lol, es ist wahr, dass FSO UTF-8 nicht lesen kann, aber die MSDN-Dokumentation bringt mich zum Lachen über Unicode und Binärdateien. –
Vergessen Sie 'objStream.Close' nicht nach' objStream.ReadText() '. – Olexa
Es ist wahr, dass 'FSO' UTF-8 nicht lesen kann, aber tatsächlich können Sie die Datei als ASCII mit' FSO' öffnen und [den Inhalt durch char-in-loop lesen] (http://stackoverflow.com/a/ 6087783/2165759), dann wandle diese Zeichenfolge in die Zeichenfolge um [wobei jedes Zeichen als ein Byte der UTF-8-codierten Datei betrachtet wird] (https://en.wikipedia.org/wiki/UTF-8#Description). Es ist nur ein akademisches Interesse; 'ADODB.Stream' ist definitiv der effizienteste. – omegastripes