Ho un file di testo salvato come UTF-8 e quando provo a leggere il file mi dà strani caratteri e non i caratteri corretti (contiene caratteri cinesi). Come posso farmi dare i caratteri cinesi corretti?Leggere il file di testo utf-8 in 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, è vero che FSO non può leggere UTF-8, ma i documenti MSDN mi fanno ridere di file Unicode e binari. –
Non dimenticare di 'objStream.Close' dopo' objStream.ReadText() '. – Olexa
È vero che 'FSO' non può leggere UTF-8, ma in realtà è possibile aprire il file come ASCII con' FSO' e [leggere il contenuto char per char in loop] (http://stackoverflow.com/a/ 6087783/2165759), quindi convertire quella sequenza di caratteri nella stringa [considerando ogni carattere come un byte del file codificato UTF-8] (https://en.wikipedia.org/wiki/UTF-8#Description). È solo un interesse accademico; 'ADODB.Stream' è sicuramente il più efficiente. – omegastripes