用户操作
[即时聊天] [发私信] [加为好友]
陈岩ID:yigui2001
833次访问,排名2万外好友1人,关注者4
随和。爱打篮球!
yigui2001的文章
原创 2 篇
翻译 0 篇
转载 1 篇
评论 24 篇
最近评论
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      转载 URL中的特殊字符问题escape,encodeURI,encodeURIComponent收藏

       | 旧一篇: 定时加载cronExpression使用注意事项

      在使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原来发生不一致。使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的encodeURI函数编码的URL,结果就不一样。

      javascript对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

      因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。

      1、  传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

         例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>

      2、  进行url跳转时可以整体使用encodeURI

      例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

      3、  js使用数据时可以使用escape

      例如:搜藏中history纪录。

      4、  escape0-255以外的unicode值进行编码时输出%u****格式,其它情况下escapeencodeURIencodeURIComponent编码结果相同。

      最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

      escape不编码字符有69个:*+-./@_0-9a-zA-Z

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

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

      字符

      特殊字符的含义

      URL编码

      #

      用来标志特定的文档位置

      %23

      %

      对特殊字符进行编码

      %25

      &

      分隔不同的变量值对

      %26

      +

      在变量值中表示空格

      %2B

      /

      表示目录路径

      %2F

      \

      表示目录路径

      %5C

      =

      用来连接键和值

      %3D

      ?

      表示查询字符串的开始

      %3F

      空格

      空格

      %20

      .

      句号

      %2E

      :

      冒号

      %3A

      发表于 @ 2008年01月09日 11:28:00|评论(loading...)|编辑

       | 旧一篇: 定时加载cronExpression使用注意事项

      评论:没有评论。

      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © yigui2001