今天是:
设百科问答网为首页|收藏百科问答网|网站地图
百科问答网 - 帮您解决问题,分享成功经验

为什么我encodeURL的结果,不一样呢


在一些网站上看到这样的encode之后的汉字

比如

%C7%E9%CA%E9 对应的是 情书

我用javascript尝试encodeURL 情书,但得到的结果却不是 %C7%E9%CA%E9

难道不是encodeURL的结果??? 可是

%C7%E9%CA%E9 在 Dw8 能认出是情书的,应该是encodeURL吧,难道我代码有问题呢???

<script>
  document.write (encodeURIComponent("情书"));
  </script>

很是困惑?




答案或建议:


%C7%E9%CA%E9是使用gbk字符集的结果,不过现在的标准是使用utf-8字符集。

encodeURIComponent()实际上就是把给出的字符串转换成字节,然后把字节用十六进制写出来。把字符转换成字节是要依赖字符集的。
早期这个转换使用的字符集是平台字符集,也就是说用简体中文系统的会使用gbk,用繁体中文系统的会使用big-5,用日文系统的会使用shift-jis。这种情况下,如果一个网站同时有简体中文/繁体中文/日文用户的话就很容易混乱。所以最近的浏览器都有一个选项是把encodeURIComponent()使用的字符集固定为utf-8。
 
不是meta里定义的字符集,而是文件本身的编码
把你的js代码存成html,然后用记事本打开,分别另存为utf-8和unicode为版本(保存时选择编码),再试就可以看到差别了


转 载 请 保 留:http://www.baikewenda.com/tech/dev/7/5/a102048158.htm

推荐内容

敬请注意:百科问答网内容来源于网络或民间经验收集,仅供参考。其中有关健康疾病方面的内容请务必咨询专业医生或及时到医院治疗。
关于我们 - 广告服务 - 联系我们
百科问答网 Copyright ©2005 - 2011 www.baikewenda.com,All Rights Reserved
辽ICP备10007180号