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
相关产品推荐
相关产品推荐

