escape编码与unescape解码汉字出现乱码的解决方法


Posted in Javascript onJuly 02, 2014

今天的项目中遇到需要用javascript的escape编码汉字再用unescape解码的情况,测试代码段的时候出现了乱码的情况。
具体情况如下:
首先,用EditPlus打开测试页面test.html,编辑如下html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>unescape测试</title>
</head>
<body>
<script>
var teststr=escape("三水点靠木");
document.write(teststr);
</script>
</body>
</html>

页面打印输出:

%uFFFD%u0171%uFFFD%u05AE%uFFFD%uFFFD

此时可以看出情况不对,单从汉字对应的字符数量上来说已经不对了!
再使用如下代码测试unescape解码后的汉字:

var relstr=unescape("%uFFFD%u0171%uFFFD%u05AE%uFFFD%uFFFD");
document.write(relstr);

出现了乱码:�ű�֮��

解决方法:
用Dreamweaver打开test.html文件,发现了问题所在!
原先的那段

var teststr=escape("三水点靠木");

变成了

var teststr=escape("ű֮");

可见是编辑器的初始编码造成的!
在Dreamweaver中将汉字改回来,重新运行test.html,得到了对应的编码:

%u811A%u672C%u4E4B%u5BB6

此时再用unescape解码:

var relstr=unescape("%u811A%u672C%u4E4B%u5BB6");
document.write(relstr);

就得到了原先正确的汉字:三水点靠木!

Javascript 相关文章推荐
使用户点击后退按钮使效三行代码
Jul 07 Javascript
jQuery $.each的用法说明
Mar 22 Javascript
仅IE不支持setTimeout/setInterval函数的第三个以上参数
May 25 Javascript
JS 两个字符串时间的天数差计算
Aug 25 Javascript
js获取html文件的思路及示例
Sep 17 Javascript
js实现的标题栏新消息闪烁提示效果
Jun 06 Javascript
js动态往表格的td中添加图片并注册事件
Jun 12 Javascript
一个实用的图片切换支持点击切换和自动轮播
Sep 09 Javascript
React Native实现简单的登录功能(推荐)
Sep 19 Javascript
React Native仿美团下拉菜单的实例代码
Aug 08 Javascript
Vue 中 filter 与 computed 的区别与用法解析
Nov 21 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
Jan 29 Javascript
js获取IP地址的方法小结
Jul 01 #Javascript
jQuery截取指定长度字符串的实现原理及代码
Jul 01 #Javascript
原生js事件的添加和删除的封装
Jul 01 #Javascript
jQuery的:parent选择器定义和用法
Jul 01 #Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
Jul 01 #Javascript
JavaScript利用正则表达式去除日期中的“-”
Jul 01 #Javascript
jquery实现图片按比例缩放示例
Jul 01 #Javascript
You might like
如何分别全角和半角以避免乱码
2006/10/09 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
phpfpm的作用和用法
2019/10/10 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
python读取Android permission文件
2013/11/01 Python
python实现的udp协议Server和Client代码实例
2014/06/04 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
static关键字的用法
2013/10/07 面试题
初中学校军训方案
2014/05/09 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书