VB & 中文字符串

VB & Chinese string

我正在尝试使用 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、记事本或db时,汉字显示为???? 对此有什么解决方案吗?

VB6 在调用 API 调用时是 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