临时用VB做了个抓取网页数据,但是网页返回的中文是unicode编码,怎么转为中文。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了临时用VB做了个抓取网页数据,但是网页返回的中文是unicode编码,怎么转为中文。相关的知识,希望对你有一定的参考价值。
我是希望一次将抓取到的源码中是unicode的都转为中文。分别提取出来的转已会。
'//vb将unicode转成汉字,如:\u8033\u9EA6,转后为:耳麦
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 LongPrivate 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编码,怎么转为中文。的主要内容,如果未能解决你的问题,请参考以下文章