URL中的特殊字符问题

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent ,相应3个解码函数:unescape,decodeURI,decodeURIComponent
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=百度& amp;ct=21");
3、   js使用数据时可以使用escape
例如:搜藏中history纪录。
4、   escape对0-255以外的 unicode值进行编码时输出%u****格式,其它情况下 escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的 url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支 持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a- z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

Java代码  

  1. <?php  
  2. public function urlSafeB64Encode($url) {   
  3.     return strtr(base64_encode($url), '+/=', '-_,');  
  4. }  
  5.   
  6. public function urlSafeB64Decode($url) {  
  7.     return base64_decode(strtr($url, '-_,', '+/='));  
  8. }  

urlencode,Urldecode函数用于对Urldecode编码过的字符串进行解码,然后返回。

Java代码  

  1. <script>  
  2. alert(unescape('\u5bf9\u4e0d\u8d77,\u60a8\u6ca1\u6709\u6267\u884c\u6b64\u9879\u64cd\u4f5c\u7684\u6743\u9650!'));  
  3. </script>  
时间: 2024-11-08 22:03:39

URL中的特殊字符问题的相关文章

URL(地址)中的特殊字符

特殊含义                           十六进制值  + 表示空格(在 URL 中不能使用空格)   %20  / 分隔目录和子目录                   %2F  ? 分隔实际的 URL 和参数                %3F  % 指定特殊字符                         %25  # 表示书签                            %23  & URL 中指定的参数间的分隔符           %26

cordova 发起的请求,用于登录,当密码中存在特殊字符时,URL会被截断,.net端接收不全

问题描述 cordova 发起的请求,用于登录,当密码中存在特殊字符时,URL会被截断,.net端接收不全 $.ajax({ type: "get", url: "http://192.168.0.1:80/AppService.asmx/Login", data: "{UserID: '123',Password:'123456*#' }", dataType: "json", success: function(data)

[故障引起的故事]URL中带加号的处理

问题起因:      客户订购了一关键字为"e+h 变送器" , 在首页推荐广告中,会根据用户在search 搜索过的关键字进行一个匹配投放.技术实现是UED 通过JS 获取cookie 中的h_keys 内容,拼装到 http://xxxxx/advert/ctp_advert.htm?num=4&keyword= {keyword} . 这里取出来对应的cookie 信息为中文,最后通过一个ajax 发起一个GET请求.     所以针对最后的请求是:http://xxxx

ios-解析JSON中的特殊字符

问题描述 解析JSON中的特殊字符 从 foursquare api抓取本地数据,然后将数据传递到webservice 添加给database. 现在我已经获取的当地数据为Mexico,其中有一些特殊字符一起的下列错误: Unrecognized escape sequence. (13443): 使用下面的JSON编码: NSString *requestString = [jsonstring UTF8String]; 如何解析这些特殊字符?(比如西班牙 ?spanol) 解决方案 +(NS

如何处理JSON中的特殊字符_javascript技巧

JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换.由于 Ajax 应用程序非常适合将纯文本发送给服务器端程序并对应地接收纯文本,相比不能生成文本的 API,能生成文本的 API 自然更可取:而且,JSON 让您能够处理本地 JavaScript 对象,而无需为如何表示这些对象多费心思. XML 也可以提供文本方面的类似益处,但用于将 JavaScript 对象转换成 XML 的几个现有 API 没有 JSON API 成熟:有

用js如何将url带的特殊字符传到后台???急!急!急!在线等!

问题描述 用js如何将url带的特殊字符传到后台???急!急!急!在线等!请高手指教! 解决方案 解决方案二:window.location=/dosomething.jsp?par=abc&abc这段代码假设是在index.jsp这个页面里面的,在输出这段话的时候就要做编码处理了(即在index.jsp里面处理).如下<%StringurlNotEncoded="/dosomething.jsp?par=abc&abc";StringurlEncoded=jav

网页(HTML)中的特殊字符

网页 一般来说,在HTML中,一个特殊字符有两种表达方式,一种称作数字参考,一种称作实体参考. 所谓数字参考,就是用数字来表示文档中的特殊字符,通常由前缀"",加上数值,再加上后缀";"而组成,它可以采用如下两种方式.D; 其中D是一个十进制数值 下面是一些特殊字符的数字参考示例: 对应于特殊字符"" 对应于特殊字符"" 所谓实体参考,实际上就是用有意义的名称来表示特殊字符,通常由前缀"&",加上字

PHP解析URL并得到URL中的参数

<?php //例举一个URL格式的字符串: $str = 'http://test.com/testdir/index.php?param1=10&param2=20&param3=30&param4=40&param5=50&param6=60'; //1 用parse_url解析URL,此处是$str $arr = parse_url($str); var_dump($arr); //2 将URL中的参数取出来放到数组里 $arr_query = con

PHP实现截取一个URL中的主域名

PHP实例教程,如何截取一个URL中的主域名,如下代码: <?php $S = 'http://bbs.webjx.com'; $S = parse_url($S); $S = strtolower($S['host']) ; //取域名部分 //echo $S; $domain = array('com','cn','name','org','net'); //域名后缀 有新的就扩展这吧 $SS = $S; $dd = implode('',$domain); $SS = preg_repla