临时用VB做了个抓取网页数据,但是网页返回的中文是unicode编码,怎么转为中文。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了临时用VB做了个抓取网页数据,但是网页返回的中文是unicode编码,怎么转为中文。相关的知识,希望对你有一定的参考价值。

我是希望一次将抓取到的源码中是unicode的都转为中文。分别提取出来的转已会。

'//vb将unicode转成汉字,如:\u8033\u9EA6,转后为:耳麦

//unicode编码转换为中文
    public static string UnicodeToGB(string text)
    
        System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(text, "\\\\\\\\u([\\\\w]4)");
        if (mc != null && mc.Count > 0)
        
            foreach (System.Text.RegularExpressions.Match m2 in mc)
            
                string v = m2.Value;
                string word = v.Substring(2);
                byte[] codes = new byte[2];
                int code = System.Convert.ToInt32(word.Substring(0, 2), 16);
                int code2 = System.Convert.ToInt32(word.Substring(2), 16);
                codes[0] = (byte)code2;
                codes[1] = (byte)code;
                text = text.Replace(v, Encoding.Unicode.GetString(codes));
            
        
        else
        
 
        
        return text;
    

给你个C#.net的代码做一下参考,原理都是类似的。

参考技术A Private Declare Function MultiByteToWideChar Lib "kernel32 " (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function WideCharToMultiByte Lib "kernel32 " (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As Long
Private Const CP_ACP = 0 ' default to ANSI code page
Private Const CP_UTF8 = 65001 ' default to UTF-8 code page
参考技术B 用strconv(.responsebody,&H80)

VB中获取网页数据

以下是在Microsoft Visual Basic 6.0 中文版下做的

VB可以抓取网页数据,所用的控件是Inet控件。

第一步:单击工程-->部件 选择Microsoft Internet Transfer Control(SP6)控件。

 

第二步:布局界面显示

在界面里面拖动相对应的控件。

 

第三步 编码开始

Option Explicit

Private Sub Command1_Click()
If Text1.Text = "" Then
        MsgBox "请输入要查看源代码的URL!", vbOKOnly, "错误!"
    Else
        MsgBox "网站服务器较慢或页面内容较多时,请等待!", vbOKOnly, "提示:"
        Inet1.Protocol = icHTTP
       
       \' MsgBox (Inet1.OpenURL(Text1.Text))
        Text2.Text = Inet1.OpenURL(Text1.Text)
        
    End If

End Sub

Private Sub Command2_Click()
On Error GoTo connerror
    Dim a, b, c As String
    a = Text2.Text
    b = Split(a, "<title>")(1)
    b = Split(b, "</title>")(0)
    Text3.Text = b
    c = Split(a, Label4.Caption)(1)
    c = Split(c, "/>")(0)
    Text4.Text = c
connerror:
End Sub

Private Sub Form_Load()
  MsgBox "请首先输入URL,然后点击查看源码,最后再点击获取信息!", vbOKOnly, "提示:"
  
  
End Sub

  

第四步:测试

在网页地址输入:https://www.cnblogs.com/

在网页数据既可以获取数据。

 

以上是关于临时用VB做了个抓取网页数据,但是网页返回的中文是unicode编码,怎么转为中文。的主要内容,如果未能解决你的问题,请参考以下文章

vb.net如何访问https网页

用Vb提取网页中的数据

VB.NET 如何获取网页中的数据

VB如何获取网页的内容

vb在打开网页的时候出现了这样的问题

java爬虫怎么抓取登陆后的网页数据