html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

escape编码与unescape解码汉字出现乱码的解决方法_javascript技巧_

[ ] 已经帮助:人解决问题

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

<!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>

页面打印输出:i5kHTML5中文学习网 - HTML5先行者学习网

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

此时可以看出情况不对,单从汉字对应的字符数量上来说已经不对了!i5kHTML5中文学习网 - HTML5先行者学习网
再使用如下代码测试unescape解码后的汉字:i5kHTML5中文学习网 - HTML5先行者学习网

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

出现了乱码:�ű�֮��i5kHTML5中文学习网 - HTML5先行者学习网

解决方法:i5kHTML5中文学习网 - HTML5先行者学习网
用Dreamweaver打开test.html文件,发现了问题所在!i5kHTML5中文学习网 - HTML5先行者学习网
原先的那段i5kHTML5中文学习网 - HTML5先行者学习网
i5kHTML5中文学习网 - HTML5先行者学习网

var teststr=escape("脚本之家");

变成了i5kHTML5中文学习网 - HTML5先行者学习网
i5kHTML5中文学习网 - HTML5先行者学习网

var teststr=escape("ű֮");

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

%u811A%u672C%u4E4B%u5BB6

i5kHTML5中文学习网 - HTML5先行者学习网
此时再用unescape解码:i5kHTML5中文学习网 - HTML5先行者学习网
i5kHTML5中文学习网 - HTML5先行者学习网

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

就得到了原先正确的汉字:脚本之家!i5kHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助