URL编码(encodeURIComponent和decodeURIComponent)
2016-02-04 17:03
253 查看
最近在用CI框架的时候,发现一个问题,URL的GET方式链接时,如果用中文字符的话,就会出现问题,提示:链接字符不通过,于是在网上找了很多方法,修改CI框架的config.php文件,以及URL.php文件,都有所修改,最后还是没有解决这个问题。
一开始使用的时候,都是在谷歌浏览器上调试的,什么问题都没有,中文字符都可以通过,当时还真的有点佩服谷歌了。然而在IE、360浏览器上已测试,马上就出现以上的问题了。想了一个多小时,解决方法就是在提交数据的时候,通过JS把中文编码,然后在ci框架里接收到这编码数据,进行解码就可以了。
编码函数:
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
输出:
解码函数:
decodeURIComponent()
document.write(
</script>[/code]
输出:
一开始使用的时候,都是在谷歌浏览器上调试的,什么问题都没有,中文字符都可以通过,当时还真的有点佩服谷歌了。然而在IE、360浏览器上已测试,马上就出现以上的问题了。想了一个多小时,解决方法就是在提交数据的时候,通过JS把中文编码,然后在ci框架里接收到这编码数据,进行解码就可以了。
编码函数:
encodeURIComponent()
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。语法
encodeURIComponent(URIstring)
参数 | 描述 |
---|---|
URIstring | 必需。一个字符串,含有 URI 组件或其他要编码的文本。 |
返回值
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.cn http%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 | 必需。一个字符串,含有编码 URI 组件或其他要解码的文本。 |
返回值
URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。实例
在本例中,我们将使用 decodeURIComponent() 对编码后的 URI 进行解码:<script type="text/javascript"> var test1="http://www.w3school.com.cn/My first/" document.write([code]encodeURIComponent(test1)+ "<br />")
document.write(
decodeURIComponent(test1))
</script>[/code]
输出:
http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F http://www.w3school.com.cn/My first/
相关文章推荐
- sqlite3 join
- CSS3折腾集
- 字符串的窗体滑动问题
- Groovy在不同JDK版本下的性能差异
- Java 面试题
- jQuery.parseJSON() 函数详解
- OpenCV3.0的神经网络类-MLP(多层感知机参考)[cv::ml::ANN_MLP Class Reference]
- swift 单例模式正确写法
- ASP.NET MVC Area使用-将Area设置成独立项目
- hue忘记管理员登陆密码
- How about xlogs are missing and xlogs are deleted
- 教你在Yii2.0框架中如何创建自定义小部件
- Java中各种(类、方法、属性)访问修饰符与修饰符的说明
- 【Android】3.24 示例24--OpenGL绘制功能
- pxe网络安装操作系统 原理与详细过程
- 单向链表特点实现
- JAVA的字节流和字符流
- 使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)
- 字典序 动物统计 输出姓名和个数
- LVS专有名词定义