27

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 
4

2 に答える 2

54

ドキュメントから

FSO は、ASCII テキスト ファイルのみを読み取ることができます。FSO を使用して Unicode ファイルを読み取ったり、Microsoft Word や 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
于 2012-12-13T07:48:17.150 に答える
-5

ファイル システム オブジェクトで True when を使用すると、UTF 8 形式のファイルを読み取ることができます。

sFile = "C:\Users\admin\Desktop\ArtistCG\folder.txt"
Set FS = CreateObject("scripting.filesystemobject")
Set oReadfile = FS.OpenTextFile(sFile, 1, False, True)
TextFromFile = sReadfile.ReadAll
于 2013-03-14T23:29:05.027 に答える