Lees utf-8 tekst bestand in vbscript

Ik heb een tekst bestand opgeslagen als UTF-8 en ik proberen het bestand te lezen, het geeft me een rare tekens en niet de juiste tekens (het bevat Chinese tekens). Hoe kan ik het geef me de juiste Chinese tekens?

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 
InformationsquelleAutor Trish Pham | 2012-12-13

 

2 Replies
  1. 43

    Uit de documentatie:

    De FSO kan lezen alleen ASCII tekst bestanden. U kunt geen gebruik maken van de FSO te lezen
    Unicode-bestanden of lezen van binaire bestandsindelingen, zoals Microsoft Word of
    Microsoft Excel.

    Omdat je kreeg rare tekens, ik denk dat het enigszins onjuiste en het bestand is te lezen in een aantal 8-bit windows code pagina, want als het echt kon alleen-lezen ASCII, zou je hebben gezien ????

    Hoe dan ook, als u kunt gebruik maken van ADO, kunt u dit doen:

    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
    • lol, het is waar dat de FSO kan het niet lezen, UTF-8, maar de MSDN-documenten maakt me aan het lachen over Unicode-en binaire bestanden.
    • Vergeet niet om objStream.Close na objStream.ReadText().
    • Het is waar dat FSO kan het niet lezen, UTF-8, maar eigenlijk kunt u het bestand openen als ASCII met FSO en lees de inhoud char char in de loop, dan zetten de volgorde van de tekens voor het string we elke char als een byte van UTF-8 gecodeerd bestand. Het is gewoon een wetenschappelijke belangstelling; ADODB.Stream is zeker de meest efficiënte.
  2. -2

    Kunt u lezen UTF 8-geformatteerde bestanden met behulp van de Ware als met het object van het bestandssysteem.

    sFile = "C:\Users\admin\Desktop\ArtistCG\folder.txt"
    Set FS = CreateObject("scripting.filesystemobject")
    Set oReadfile = FS.OpenTextFile(sFile, 1, False, True)
    TextFromFile = sReadfile.ReadAll
    • -0.99 De tristate vierde/formaat parameter .OpenTextFile() maakt het mogelijk om een tekstbestand te openen met behulp van het systeem standaard (-2), UTF-16 (-1), of ‘ASCII’ (0) codering, maar niet UTF-8.
    • Deze opmerking heeft me geholpen om eindelijk te vinden hoe om te lezen van een UTF-16 LE ini-bestand dat ik heb proberen te wijzigen.Ik kan het bestand opslaan als UTF-16 LE wanneer ik schrijf, maar moet voor het toevoegen van de vierde parameter als -1 (TristateTrue) voor de lees functie correct te vinden dat de instelling worden gewijzigd. Bedankt

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *