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 相关文章推荐
cnblogs 代码高亮显示后的代码复制问题解决实现代码
Dec 14 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
javascript实现的一个随机点名功能
Aug 26 Javascript
jquery图片滚动放大代码分享(1)
Aug 25 Javascript
JavaScript前端开发之实现二进制读写操作
Nov 04 Javascript
jQuery简单入门示例之用户校验demo示例
Jul 09 Javascript
JS获取及验证开始结束日期的方法
Aug 20 Javascript
如何编写一个d.ts文件的步骤详解
Apr 13 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
Apr 14 Javascript
vue+egg+jwt实现登录验证的示例代码
May 18 Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
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
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
2015/12/31 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
django中模板的html自动转意方法
2018/05/27 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
浅谈Python3中print函数的换行
2020/08/05 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
毕业自我鉴定
2013/11/05 职场文书
新闻专业本科生的自我评价分享
2013/11/20 职场文书
本科应届生自荐信
2014/06/29 职场文书
2015年导购员工作总结
2015/04/25 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
检讨书怎么写?
2019/06/21 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书