encodeURIComponent()是什么Javascript函数? Unknown 2009/08/03

| |

《JavaScript 权威指南》中说最好不要用escape(),而用encodeURIComponent()或者encodeURI()。原因是escape()转换成的是%uXXXX这样的unicode码,一定要用encodeURIComponent(),或encodeURI()转换才可以成%XX%YY 这的UTF-8码。

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含URL或URI,请使用 encodeURI 方法进行。所以似乎意味着,encodeURI比encodeURIComponent更为通用,更和谐。。。

试比较:

escape("中国 人ren!") => %u4E2D%u56FD%20%u4EBAren%21
encodeURI("中国 人ren!") => %E4%B8%AD%E5%9B%BD%20%E4%BA%BAren!

当然了,如果是我,我会选择encodeURI()的,毕竟这个比较短,而且比encodeURIComponent更为通用,好记!

下面这篇贴子也比较有用:一些Javascript中数值与文字的互换函数

请给这篇日志评个分吧~!

本文评分: 4.9/10 (40 votes)    提示:您还未对本文评分,您可以进行评分并发表您的意见!

加入收藏!

spyrise Email Homepage IP
2011/06/25 08:38
非常有用的内容,今天果然又用到了。
lengyu Email IP
2009/08/04 00:40
看不懂,但还是看了[ico50]
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [注册]