解决多国语言乱码的编码问题
忙呼了几天,终于解决多国语言乱码的编码问题
open 方法打开文本文件经常遇到乱码问题,今天俺尝试打开一法文文本 和 英文文本,notepad 中出现问题,后来在 CSDN 重赏,竟然无人能解决.,查了两天,也无结果.无意中在 microsoft msdn 新闻组中发现 adodb.stream 在上传下载中可以进行 charset , 正合吾意, 马上试试,果然成功.
不要用 StrConv(InputB$(LOF(hFile), #hFile), vbUnicode) 这种方式来解决问题,因为你打开的文本编码是不确定的,另外还存在大容量文本的问题.
现归纳成如下函数,该函数能解决由于 utf-8,unicode,ansi,..... 等任何已知编码出现的乱码问题.
'http://spaces.msn.com/members/standardtrip
Function UTFDecode(filePathName As String, writeCode As String, readCode As String) As String
Dim adoSd As ADODB.Stream
Set adoSd = New ADODB.Stream
'
adoSd.Mode = adModeRecursive
adoSd.Type = adTypeText
adoSd.Open
adoSd.Charset = writeCode 'UTF-8
adoSd.LoadFromFile filePathName
adoSd.Position = 0
adoSd.Charset = readCode 'gb2312
UTFDecode = adoSd.ReadText
adoSd.Close
Set adoSd = Nothing
End Function