施用SetClipboardData将中文放入剪贴板时出现乱码
使用SetClipboardData将中文放入剪贴板时出现乱码
sData中是html代码,全是英文的时候没有问题,有中文再粘贴出来就全是乱码
------解决方案--------------------
sData 是 String 吧,我再弄 Access 密码(剪切板输出)时也遇到过。大致原因是 VB 调用 API 时 String 自动装换编码,由 VB 的Unicode 转为系统本地编码,要阻止其胡乱转换,可以自己手工转换,以 Byte 数组的方式输出。
------解决方案--------------------
既然是在VB里编程,干嘛不使用VB封装好的clipbroad对象呢.
如果功能都一样,你这样做除了自找麻烦没别的用处....
sData中是html代码,全是英文的时候没有问题,有中文再粘贴出来就全是乱码
If CBool(OpenClipboard(0)) Then
Dim hMemHandle As Long, lpData As Long
hMemHandle = GlobalAlloc(0, Len(sData) + 10)
If CBool(hMemHandle) Then
lpData = GlobalLock(hMemHandle)
If lpData <> 0 Then
CopyMemory ByVal lpData, ByVal sData, Len(sData)
GlobalUnlock hMemHandle
EmptyClipboard
SetClipboardData m_cfHTMLClipFormat, hMemHandle
End If
End If
Call CloseClipboard
End If
------解决方案--------------------
sData 是 String 吧,我再弄 Access 密码(剪切板输出)时也遇到过。大致原因是 VB 调用 API 时 String 自动装换编码,由 VB 的Unicode 转为系统本地编码,要阻止其胡乱转换,可以自己手工转换,以 Byte 数组的方式输出。
------解决方案--------------------
既然是在VB里编程,干嘛不使用VB封装好的clipbroad对象呢.
如果功能都一样,你这样做除了自找麻烦没别的用处....