【转】URL编码(encodeURIComponent和decodeURIComponent)

转自http://blog.jhonse.com/archives/2032.jhonse

最近在用CI框架的时候,发现一个问题,URL的GET方式链接时,如果用中文字符的话,就会出现问题,提示:链接字符不通过,于是在网上找了很多方法,修改CI框架的config.php文件,以及URL.php文件,都有所修改,最后还是没有解决这个问题。

一开始使用的时候,都是在谷歌浏览器上调试的,什么问题都没有,中文字符都可以通过,当时还真的有点佩服谷歌了。然而在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(encodeURIComponent(test1)+ "<br />")
document.write(decodeURIComponent(test1))</script>

输出:

http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F
http://www.w3school.com.cn/My first/

转载请注明:Jhonse技术博客 - 关注技术资讯以及技术文章的IT博客 »

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

收藏!这10部关于数学的顶级纪录片,告诉孩子数学跟枯燥不沾边!

全世界只有3.14 % 的人关注了爆炸吧知识学好数学&#xff0c;必须从娃娃抓起&#xff01;数学是人类的高级思维活动&#xff0c;越往顶层走&#xff0c;需要的各种思维能力就越多。所以&#xff0c;要想孩子数学好&#xff0c;首先要帮他“打牢思维的地基”。怎么打&#xff1f…

不确定规划及应用代码_性能测试划分之应用领域

性能测试划分性能测试划分有很多种&#xff0c;测试方法也有很多种&#xff0c;更确切的说是由于测试方法的不同决定了测试划分的情况&#xff0c;但在测试过程中性能测试的划分没有绝对的界限&#xff0c;常用的有压力测试、负载测试和并发用户测试等。性能测试的方法主要包括…

使用SysPrep制作Windows2008系统映像

Windows2008及R2的Sysprep程序位于C:\Windows\System32\Sysprep目录下。 前几天在做实验环境的时候发现一个奇怪的问题&#xff0c;成员服务器加入域时&#xff0c;提示加入域成功&#xff0c;但是本地管理员组里没有Domain Admins组&#xff0c;而且将域帐户加入本地管理员组时…

java监听网络连接_Android RxJava 之网络链接监听示范

RxJava在stream events处理上真的是一个利器。下面的示范代码显示如何用它来监听android设备的网络连接状况&#xff0c;实时接收change信息。IntentFilter filter new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);AndroidObservable.fromBroadcast(this, filter)…

老师“鬼话”全曝光!哈哈哈哈哈全国的老师都这样吗?

全世界只有3.14 % 的人关注了爆炸吧知识来源&#xff1a;少女兔&#xff08;ID&#xff1a;iiilass&#xff09;完来源&#xff1a;少女兔&#xff08;ID&#xff1a;iiilass&#xff09;作者 | 兔姐&#xff0c;宇宙疼老婆协会VIP会员&#xff0c;超人气美女漫画师&#xff0c…

windows2003——IIS

IIS转载于:https://blog.51cto.com/honglingjin2011/515383

需求分析 应该先写业务还是功能_一个套路,拆解常见数据分析需求

现实与Kaggle的区别现实环境的数据分析工作和Kaggle题目之间&#xff0c;最大的区别在于kaggle上的问题往往非常清晰。预测类问题&#xff0c;你只需要把预测做的足够准确就能拿高分。但在实际的业务环境中&#xff0c;你做了一个很牛逼的预测模型&#xff0c;换回来的只是业务…

如何在 ASP.NET CORE 中获取客户端 IP ?

咨询区 eadam&#xff1a;在 ASP.NET 中我可以用 Request.ServerVariables["REMOTE_ADDR"] 来获取客户端IP地址&#xff0c;请问在 ASP.NET Core 中我该如何实现呢&#xff1f;回答区 CodingYourLife如果你用的是 .NET 5&#xff0c;可以用内部提供的扩展方法来实现获…

jQuery EasyUI API 中文文档 - 链接按钮(LinkButton)

LinkButton 链接按钮用 $.fn.linkbutton.defaults 重写了 defaults。用法示例1. <a href"#" id"btn" iconCls"icon-search">easyui</a> 1. $(#btn).linkbutton({ 2. plain:true 3. }); 4. $(#btn).linkbutton(disable); …

10张劲爆眼球的科学动图

全世界只有3.14 % 的人关注了爆炸吧知识气球遇到橙皮会是这样的蚊子是这样吸血的&#xff0c;看着就痒蚊子是这样吸血的&#xff0c;看的浑身发痒显微镜放大看蚊子的利器&#xff0c;蚊子嘴魔术沙强磁铁其实是很危险的物品&#xff0c;携带两块以上的千万要注意全自动显微注射&…

ajax格式

2019独角兽企业重金招聘Python工程师标准>>> $.ajax({ url: "http://www.hzhuti.com", //请求的url地址 dataType: "json", //返回格式为json async: true, //请求是否异步&#xff0c;默认为异步&#xff0c;这也是ajax重要特性 data: { …

java threadsafe 注解_Java 注解详解

什么是注解Annotation 中文译过来就是注解、标释的意思&#xff0c;在 Java 中注解是一个很重要的知识点&#xff0c;但经常还是有点让新手不容易理解。而新手很难理解的主要原因是一些技术文档里的专业术语和名词不太好理解&#xff0c;比如&#xff1a;Java 注解用于为 Java …

python ssh模块_python paramiko模块(ssh) 使用

import paramikofrom io import StringIO# 一般可以从数据库里读取秘钥字符串key_str """-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEAq7gLsqYArAFco02/55IgNg0r7NXOtEM3qXpb/dabJ5Uyky/8NEHhFiQ7deHIRIuTW5Zb0kD6h6EBbVlUMBmwJrC2oSzySLU1wZNfH0PE6W6fan…

小凡模拟器:DynamipsGUI使用问题解决方法

DynamipsGUI前身源于美国加利福尼亚一***的杰作&#xff0c;为此CISCO也是相当的不爽&#xff0c;当然这是后话了。后被小凡编写成为中国CISCO学习者&#xff0c;考CCNA、NP、IE必备的模拟软件&#xff0c;为大家省去了不少银子。 本人在使用小凡的时候碰到过一些问题&#xff…

.Net微服务实战之可观测性

前言很多次去面试&#xff0c;有经验的面试官都会问一个问题&#xff0c;你是怎么去定位日常遇到的问题&#xff1f;平常跟同行分享自己遇到的问题&#xff0c;事后他会问我&#xff0c;这种看起来毫无头绪的问题&#xff0c;你是怎么去定位解决的&#xff1f;其实我们平常不知…

“财务自由的15个阶段!说说你到哪个阶段了?”

1 穷人家的狗子早当家2 看剧的时候忘记理我家猫它就变成这样了... 3 仿佛看到了自己周末&#xff06;放假的日常。4 一颗爆米花的诞生5 说说你的财务到哪个阶段了&#xff1f;6 三个字&#xff0c;证明你是哪里人&#xff1f;不准出现地名你点的每个赞&#xff0c;我都认真当…

LiveJournal发展历程

因近期打算对公司应用架构进行调整, 其中的一些思路值得借鉴. 以下为转载内容: 一、LiveJournal发展历程 LiveJournal是99年始于校园中的项目&#xff0c;几个人出于爱好做了这样一个应用&#xff0c;以实现以下功能&#xff1a; 博客&#xff0c;论坛社会性网络&#xff0c;找…

选择与得失

当脑海里开始产生萌芽了以后&#xff0c;所要做的是什么&#xff1f;怎么去准备以及怎么去实施&#xff1f;这一切对我来说&#xff0c;切切实实是经历了一番挣扎。为了达成阶段性目标&#xff0c;我挣扎的太久&#xff0c;也饱尝其中各种辛酸。但哪怕一次次被拒&#xff0c;或…

hadoop安装hive及配置mysql_Hadoop系列之Hive(数据仓库)安装配置

Hadoop系列之Hive(数据仓库)安装配置1.在NameNode安装cd /root/softtar zxvf apache-hive-0.13.1-bin.tar.gzmv apache-hive-0.13.1-bin /usr/local/hadoop/hive2. 配置环境变量(每个节点都需要增加)打开/etc/profile#添加以下内容&#xff1a;export HIVE_HOME/usr/local/hado…

emacs python_Emacs之Python编程环境配置 - elpy

由于之前一直使用EmacsJedi来进行Python的编程环境&#xff0c;最近又尝试了EmacsElpy的方式。接下来直接开始吧&#xff0c;少些废话。首先系统当中要安装pip等工具&#xff0c;方便安装python的一些工具包(在CentOS6.5 64位系统上进行的操作)&#xff0c;wget https://bootst…