Q:如何用
VBA读取UTF编码的
文本
文件?
A:通常读取文本文件,我们会用FSO 对象或者用VBA内部的Open 语句来读取。但是当文本文件是以UTF编码 格式 保存的时候,用前面的办法就会读出乱码。而FSO最多只能读出Unicode编码的文件。
为了能够正常读取UTF编码格式的文件,我们就需要用到ADODB.Stream对象。
A:通常读取文本文件,我们会用FSO 对象或者用VBA内部的Open 语句来读取。但是当文本文件是以UTF编码 格式 保存的时候,用前面的办法就会读出乱码。而FSO最多只能读出Unicode编码的文件。
为了能够正常读取UTF编码格式的文件,我们就需要用到ADODB.Stream对象。
以下即为读取UTF编码文件的自定义函数:
Function ReadUTF(ByVal FileName As String) As String
With CreateObject("ADODB.Stream")
.Type = 2 '读取文本文件
.Mode = 3 '读写
.Open
.LoadFromFile FileName
.Charset = "UTF-8" '设定编码
.Position = 2
ReadUTF = .ReadText
.Close
End With
End Function