URL编码(encodeURIComponent和decodeURIComponent)
来源:互联网 发布:talkingdata数据造假 编辑:程序博客网 时间:2024/05/18 15:04
最近在用CI框架的时候,发现一个问题,URL的GET方式链接时,如果用中文字符的话,就会出现问题,提示:链接字符不通过,于是在网上找了很多方法,修改CI框架的config.php文件,以及URL.php文件,都有所修改,最后还是没有解决这个问题。
一开始使用的时候,都是在谷歌浏览器上调试的,什么问题都没有,中文字符都可以通过,当时还真的有点佩服谷歌了。然而在IE、360浏览器上已测试,马上就出现以上的问题了。想了一个多小时,解决方法就是在提交数据的时候,通过JS把中文编码,然后在ci框架里接收到这编码数据,进行解码就可以了。
编码函数:
encodeURIComponent()
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
语法
encodeURIComponent(URIstring)
返回值
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
说明
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: – _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
提示和注释
提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
实例
在本例中,我们将使用 encodeURIComponent() 对 URI 进行编码:
<script type="text/javascript">document.write(encodeURIComponent("http://www.w3school.com.cn"))document.write("<br />")document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/"))document.write("<br />")document.write(encodeURIComponent(",/?:@&=+$#"))</script>
输出:
http%3A%2F%2Fwww.w3school.com.cnhttp%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F%2C%2F%3F%3A%40%26%3D%2B%24%23
解码函数:
decodeURIComponent()
定义和用法
decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。
语法
decodeURIComponent(URIstring)
返回值
URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。
实例
在本例中,我们将使用 decodeURIComponent() 对编码后的 URI 进行解码:
<script type="text/javascript">var test1="http://www.w3school.com.cn/My first/"document.write(encodeURIComponent(test1)
+ "<br />")document.write(decodeURIComponent(test1)
)</script>
输出:
http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2Fhttp://www.w3school.com.cn/My first/
- URL编码(encodeURIComponent和decodeURIComponent)
- js url编码解码函数 decodeURIComponent encodeURIComponent
- JS中encodeURIComponent(URL)编码与decodeURIComponent(URL)解码详解
- JS中encodeURIComponent(URL)编码与decodeURIComponent(URL)解码详解
- JS中encodeURIComponent(URL)编码与decodeURIComponent(URL)解码详解
- URL转码 js decodeURIComponent encodeURIComponent 函数
- encodeURIComponent 与 decodeURIComponent 编码互转
- JS----编码,解码decodeURIComponent,encodeURIComponent,decodeURI,encodeURI
- url编码函数encodeURI和encodeURIComponent方法
- js中的编码解码--escape/unescape、encodeURI/decodeURI 、encodeURIComponent/decodeURIComponent
- javascript中的 encodeURIComponent/decodeURIComponent
- Javascript的URL编码方法比较:escape、encodeURI和encodeURIComponent
- JavaScript的URL编码方法比较:escape、encodeURI和encodeURIComponent
- 一张图看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别 一、这四个方法的用处 1、用来编码和解码URI的 统一资源标识符
- js encodeURI() decodeURI() encodeURIComponent() decodeURIComponent()
- escape()、encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()
- encodeURI、encodeURIComponent()、decodeURI()、decodeURIComponent() 详解
- decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。
- OpenCV3.0的神经网络类-MLP(多层感知机参考)[cv::ml::ANN_MLP Class Reference]
- jQuery.parseJSON() 函数详解
- hadoop core-site.xml(hadoop.tmp.dir)
- swift 单例模式正确写法
- cocos2d-x 3.3 CC_CALLBACK_0 std::bind与std::function
- URL编码(encodeURIComponent和decodeURIComponent)
- USACO 5.1.1 凸包参考程序
- PHP图片压缩的方法
- AutoLayout框架Masonry使用心得
- {Unity} 停止播放PlayClipAtPoint播放产生的OneShotAudio音效的方法
- iOS -- childViewController 的问题
- hdu2544——最短路(最短路径模板)
- POJ3461 字符串双HASH
- Android ListView setOnItemClickListener点击无效原因分析