因为剪贴板的 HTML Format 是 UTF-8 编码的,而 VB 的 StrConv 只能进行 Ansi/Unicode 转换,当然乱码了。 用下面的函数代替 StrConv 就可以了。 Function StrConvFromUTF8(aBytes() As Byte) As String Dim cStream As ADODB.Stream Set cStream = New ADODB.Stream cStream.Open
cStream.Type = adTypeBinary cStream.Write aBytes
cStream.Position = 0 cStream.Type = adTypeText cStream.Charset = "utf-8" StrConvFromUTF8 = cStream.ReadText cStream.Close End Function
http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=4317565
看一下这个
用下面的函数代替 StrConv 就可以了。
Function StrConvFromUTF8(aBytes() As Byte) As String
Dim cStream As ADODB.Stream
Set cStream = New ADODB.Stream
cStream.Open
cStream.Type = adTypeBinary
cStream.Write aBytes
cStream.Position = 0
cStream.Type = adTypeText
cStream.Charset = "utf-8"
StrConvFromUTF8 = cStream.ReadText cStream.Close
End Function