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 相关文章推荐
jQuery UI的Dialog无法提交问题的解决方法
Jan 11 Javascript
jquery easyui滚动条部分设置介绍
Sep 12 Javascript
兼容FF和IE的动态table示例自写
Oct 21 Javascript
JavaScript正则表达式之multiline属性的应用
Jun 16 Javascript
JS仿hao123导航页面图片轮播效果
Sep 01 Javascript
详解express与koa中间件模式对比
Aug 07 Javascript
关于Vue Webpack2单元测试示例详解
Aug 14 Javascript
微信小程序实现登录遮罩效果
Nov 01 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 Javascript
js+springMVC 提交数组数据到后台的实例
Sep 21 Javascript
JavaScript实现简单计时器
Jun 22 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
图解上海144收音机
2021/03/02 无线电
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
php 文件缓存函数
2011/10/08 PHP
php实现aes加密类分享
2014/02/16 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
pandas 空数据处理方法详解
2019/11/02 Python
python获取array中指定元素的示例
2019/11/26 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
python3中确保枚举值代码分析
2020/12/02 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
家居饰品店创业计划书
2014/01/31 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
村道德模范事迹材料
2014/08/28 职场文书
体育活动总结
2015/02/04 职场文书
教师辞职书范文
2015/02/26 职场文书
搬迁通知
2015/04/20 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS
vue的项目如何打包上线
2022/04/13 Vue.js