富贵资源网 Design By www.hznty.com
今天的项目中遇到需要用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);
出现了乱码:"htmlcode">
var teststr=escape("");
变成了
var teststr=escape("");
可见是编辑器的初始编码造成的!
在Dreamweaver中将汉字改回来,重新运行test.html,得到了对应的编码:
%u811A%u672C%u4E4B%u5BB6
此时再用unescape解码:
var relstr=unescape("%u811A%u672C%u4E4B%u5BB6"); document.write(relstr);
就得到了原先正确的汉字:!
富贵资源网 Design By www.hznty.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
富贵资源网 Design By www.hznty.com
暂无评论...