You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA代码无法正确读取UTF-8编码的波斯语字符求助

解决VBA读取UTF-8编码波斯语文件乱码问题

VBA原生的Open语句默认采用系统本地编码读取文件,无法正确识别UTF-8编码的波斯语字符,导致读取后出现乱码。以下是两种可靠的解决方法:

方法一:使用ADODB.Stream读取UTF-8文件

这是处理UTF-8编码文件最稳定的方式,无论文件是否带BOM(字节顺序标记)都能正确解析:

Dim strFile As String
Dim strBody As String
Dim objStream As Object

strFile = "C:\Plus.csv"

Set objStream = CreateObject("ADODB.Stream")
With objStream
    .Charset = "UTF-8"
    .Open
    .LoadFromFile strFile
    strBody = .ReadText
    .Close
End With
Set objStream = Nothing

方法二:使用FileSystemObject读取UTF-8文件

如果文件带有UTF-8 BOM,可以用这个方法:

Dim strFile As String
Dim strBody As String
Dim objFSO As Object
Dim objFile As Object

strFile = "C:\Plus.csv"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, 1, False, -1) ' 参数-1对应UTF-8编码
strBody = objFile.ReadAll
objFile.Close

Set objFile = Nothing
Set objFSO = Nothing

注意:如果UTF-8文件没有BOM,FileSystemObject可能无法正确识别编码,此时优先使用ADODB.Stream方法。

内容的提问来源于stack exchange,提问作者saeidmobashery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 13:07:04