我正在尝试使用VB6从网站上捕获中文文本
用于执行此操作的简单代码如下所示,适用于英文网站
Private Function RequestText(sURL, Optional sMethod = "POST")
'You may have caching issues using GET
Dim XMLHTTP
Set XMLHTTP = CreateObject("microsoft.XMLHTTP")
sMethod = UCase(sMethod)
XMLHTTP.Open sMethod, sURL, False
XMLHTTP.send (Null) '"x=x"
RequestText = XMLHTTP.responseText
Set XMLHTTP = Nothing
End Function
Private Sub cmdText_Click()
Dim html as string
html = RequestText("http://url")
Clipboard.Clear
Clipboard.SetText html
MsgBox "Done"
End Sub
当尝试将文本粘贴到word,notepad或db时,中文字符显示为???? 对此有何解决方案?
答案 0 :(得分:1)
当调用API调用时,VB6是ANSI,因为WIN95不支持unicode。在COM和内部它是Unicode。因此,任何API调用,如剪贴板所需,您的TEXT将转换为ANSI。因此不要使用TEXT。 XMLHTTP有多种格式可供选择。
Internet Explorer可以访问剪贴板。用它来做。
此示例代码读取剪贴板。注意,您必须导航到任何本地文件以避免安全提示。
Set Arg = WScript.Arguments
set WshShell = createObject("Wscript.Shell")
Set Inp = WScript.Stdin
Set Outp = Wscript.Stdout
Sub Clip
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = 0
ie.Navigate2 FilterPath & "Filter.html"
Do
wscript.sleep 100
Loop until ie.document.readystate = "complete"
txt=ie.document.parentwindow.clipboardData.GetData("TEXT")
ie.quit
If IsNull(txt) = true then
outp.writeline "No text on clipboard"
else
outp.writeline txt
End If
End Sub