XMLHTTP Get HTML页面时的中文乱码之完全客户端Script解决方案
先分析一下为何会出现中文乱码的问题。原因很简单:XMLHTTP得到Response时假定Response是UTF8编码的,它把含GB2312编码的HTML当成UTF8格式,因此,出现了中文乱码。
那么,除了使用ASP服务器端脚本技术外,就没有客户端的解决办法吗?答案是:有!
本人使用VBScript客户端脚本,成功实现了不使用ASP,解决了XMLHTTP 抓取 HTML页面时出现中文乱码的问题。
为何使用VBScript,而不是大家常用的JScript?XMLHTTP的responseBody返回的是一个unsigned bytes数组。VBScript提供了许多用于操作字符串和格式化数据的函数,以及访问安全数组的方法。这些函数或方法在JScript中并不存在。这里我们需要使用VBScript的内置函数:MidB、AscB、LenB等,来访问responseBody。
说句题外话,我不是在强调VBScript比JScript好,而是二者都有自己的特点。第一次在CSDN上写文章,谢谢大家支持。写这边文章有两个目的:一、锻炼自己;二、希望大家遇到问题时,要学会分析问题,做到有的放矢,知其然也知其所以然。
我给出代码Test.htm,它包括了获取自身代码和获取其他网页代码两种应用,具体脚本如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- 作者:小林,sulins@tom.com -->
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<script language=VBScript>
Function bytes2BSTR(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
Function viewSource1()
dim XmlHttp
set XmlHttp = CreateObject("Microsoft.XMLHTTP")
XmlHttp.Open "GET", document.location.href, false
XmlHttp.setRequestHeader "Content-Type","text/XML"
XmlHttp.Send
dim html
html = bytes2BSTR(XmlHttp.responseBody)
msgbox html
End Function
Function viewSource2()
dim XmlHttp
set XmlHttp = CreateObject("Microsoft.XMLHTTP")
XmlHttp.Open "GET", "http://www.google.com", false
XmlHttp.setRequestHeader "Content-Type","text/XML"
XmlHttp.Send
dim html
html = bytes2BSTR(XmlHttp.responseBody)
msgbox html
End Function
</script>
<BODY bgcolor=gainsboro style='border:1pt solid white'>
<TABLE class=text>
<tr>
<td class=text>XMLHTTP Get HTML页面时的中文乱码之完全客户端Script解决方案</td>
</tr>
<tr>
<td class=button><button οnclick=viewSource1()>查看自身的网页代码</button></td>
</tr>
<tr>
<td class=button><button οnclick=viewSource2()>查看google主页代码</button></td>
</tr>
</TABLE>
</BODY>
</HTML>
转载于:https://www.cnblogs.com/xnxqs/archive/2005/09/12/234761.html
XMLHTTP Get HTML页面时的中文乱码之完全客户端Script解决方案相关推荐
- java url 传值乱码问题_java页面url传值中文乱码怎么办
是不是有很多用户们都有遇到过java页面url传值中文乱码的问题呢?java页面url传值中文乱码怎么办?那么今天我们就跟爱站小编一起去看看具体的解决方法吧. 中文问题,是在应用中常常遇到的问题. 这 ...
- 使用eclipse开发web项目运行时出现中文乱码问题
使用eclipse开发web项目运行时出现中文乱码问题 检查Tomcat sever.xml中的编码设置是否为 utf-8 ,不是的话改一下: <?xml version="1.0&q ...
- MySQL 插入数据时,中文乱码问题的解决
MySQL 插入数据时,中文乱码问题的解决 参考文章: (1)MySQL 插入数据时,中文乱码问题的解决 (2)https://www.cnblogs.com/sunzn/archive/2013/0 ...
- ssm idea后端接收数据输出在控制台时出现中文乱码
idea 后端接收数据输出在控制台时出现中文乱码 环境 maven项目, ssm框架(spring+springmvc+mybatis)注解和配置文件混合开发, tomcat服务器 解决乱码的方式(推 ...
- mysql导入数据库注释乱码_source命令 导入.sql文件时,中文乱码 或者是注释乱码...
1.source命令 导入.sql文件时,中文乱码 或者是注释乱码 首先进入dos命令,进入mysql数据库,之后use 数据库:之后查看你的mysql数据库编码 如下命令:模糊查询变量charact ...
- spring使用@Value注解读取.properties文件时出现中文乱码问题的解决
spring使用@Value注解读取.properties文件时出现中文乱码问题的解决 参考文章: (1)spring使用@Value注解读取.properties文件时出现中文乱码问题的解决 (2) ...
- mysql脚本执行中文乱码_MySQL从命令行导入SQL脚本时出现中文乱码的解决方法
本文实例讲述了MySQL从命令行导入SQL脚本时出现中文乱码的解决方法.分享给大家供大家参考,具体如下: 在图形界面管理工具 MySql Query Browser中打开脚本(脚本包括建库.建表.添加 ...
- 解决在Linux下安装Oracle时的中文乱码问题
解决在Linux下安装Oracle时的中文乱码问题 参考文章: (1)解决在Linux下安装Oracle时的中文乱码问题 (2)https://www.cnblogs.com/qiumingcheng ...
- Activiti保存.png 流程图片文件且解决idea中保存图片时显示中文乱码的解决方法
Activiti保存.png 流程图片文件且解决idea中保存图片时显示中文乱码的解决方法 Eclipse 工具中的操作 流程图片生成的两种方式: 使用 activiti-designer 设计流程图 ...
- java读txt文件乱码_java读取txt文件时出现中文乱码怎么解决
java读取txt文件时出现中文乱码怎么解决 发布时间:2020-06-25 15:27:31 来源:亿速云 阅读:105 作者:Leah java读取txt文件时出现中文乱码怎么解决?针对这个问题, ...
最新文章
- Unity3D 游戏引擎之脚本实现模型的平移与旋转(六)
- 链接多个数据库的方法
- 科大星云诗社动态20210124
- 曝台积电芯片要涨价:2022年至少上调10%
- 2018.08.09洛谷P3959 宝藏(随机化贪心)
- Android客户端与服务器之间传递json数据
- struts2 + ajax 用户名登录验证(struts2+spring+ibatis)
- 冈萨雷斯 数字图像处理 插图 打包下载 原tif版 + png版
- 谷歌地球专业版:Google Earth Pro for Mac中文免费版
- 百度云图片识别(ImageRecognition)
- B站崩了、Facebook崩了,我们到底该怎么保证高可用
- Could not found global transaction xid
- Delphi更改.exe文件图标
- TP5查询构造器查询语句select、find、colum、value详解
- 用TDA7377做一款立体声功放,DIY功放了解一下?
- 比你拼命的人多的是,最可怕的是比你牛的人比你还拼命。。。励志
- SQL Server Express下載地址
- CSS3实现自适应的聊天气泡
- 项目一:瑞吉点餐中遇到的问题集
- java如何通过域名查ip_JAVA实现通过IP反查域名
热门文章
- 理解Java - JDK动态代理原理
- JavaScript - 理解面向对象编程
- jQuery基础资料(三)
- bilstmcrf词性标注_BiLSTM+CRF 的实现详解
- babel与php,javascript – Babel JS babel-preset-php错误
- jsp调用servlet方法_Servlet的运行原理
- snapgene怎么比对序列_找不到相似序列?快来Blast一下!
- 修改FTP服务器时长,连接ftp服务器的时长怎么设置
- 牛b硬件信息修改大师_比X大师更靠谱?一款真正良心的硬件检测工具
- request与在php安全,request导致的安全性问题分析