为什么要encodeURI(url)两次才不会出现乱码? [问题点数:30分,结帖人zygsee]

Bbs1
本版专家分:0
结帖率 100%
Bbs8
本版专家分:44874
Blank
红花 2005年11月 Web 开发大版内专家分月排行榜第一
Blank
黄花 2007年6月 Web 开发大版内专家分月排行榜第二
Bbs1
本版专家分:0
Bbs7
本版专家分:25782
Blank
蓝花 2008年1月 Web 开发大版内专家分月排行榜第三
2007年8月 Web 开发大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs4
本版专家分:1258
Bbs7
本版专家分:26238
Blank
蓝花 2018年5月 Web 开发大版内专家分月排行榜第三
Bbs7
本版专家分:26238
Blank
蓝花 2018年5月 Web 开发大版内专家分月排行榜第三
Bbs8
本版专家分:44874
Blank
红花 2005年11月 Web 开发大版内专家分月排行榜第一
Blank
黄花 2007年6月 Web 开发大版内专家分月排行榜第二
Bbs7
本版专家分:15279
Bbs3
本版专家分:727
Bbs1
本版专家分:0
Bbs3
本版专家分:577
Bbs7
本版专家分:26238
Blank
蓝花 2018年5月 Web 开发大版内专家分月排行榜第三
Bbs4
本版专家分:1013
Bbs4
本版专家分:1056
Bbs1
本版专家分:15
Bbs1
本版专家分:25
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:55
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs2
本版专家分:108
Bbs1
本版专家分:0
Bbs1
本版专家分:0
urldecode和rawurldecode慎重使用,解密多次会导致值丢失
 PHP中常用过滤函数如addslashes()、mysql_real_escape_string()、mysql_escape_string()或者使用魔术引号GPC开关来防止注入,原理都是给单引号(’)、双引号(”)、反斜杠(\)和NULL等特殊字符前面加上反斜杠来进行转义。         但是这些函数在遇到<em>url</em>decode()函数时,就会因为二次解码引发注入。<em>url</em>decode()函数...
两次URL编码与两次encodeURI
当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操作系统的字符集进行编码提交到服务器,服务器会按照配置的字符集进行解码,所以如果两者不一致就会导致<em>乱码</em>。 encodeURI函数采用UTF-8对URL进行编码,所以如果服务器在进行解码时使用的是其他的编码方式就会<em>出现</em><em>乱码</em>,默认的服务器配置的解码字符集都不是UTF-8,所以大部分情况下地址栏提交中文查询参数时会产生<em>乱码</em>;针对这种情况,
两次encodeURI和URLDecode的原理分析
当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操作系统的字符集进行编码提交到服务器,服务器会按照配置的字符集进行解码,所以如果两者不一致就会导致<em>乱码</em>。如果只进行一次encodeURI,因为encodeURI函数采用UTF-8对URL进行编码,所以如果服务器在进行解码时使用的是其他的编码方式就会<em>出现</em><em>乱码</em>,默认的服务器配置的解码字符集都不是UTF-8,所以大部分情况下地址栏提交中文查询参...
js为什么需要做两次encodeURL编码?
这个问题的根本原因是服务器会自己做一次解码,且解决的字符集不一定是UTF-8。 对于var <em>url</em> = &quot;b.jsp?name=&quot;+u_name; 要想把中文的name传到后台,需要对<em>url</em>进行一次编码,否则是<em>乱码</em>。 A.     前端:var <em>url</em>1=encodeURI(<em>url</em>); 后台:String name=request.getParameter(&quot;name&quot;); 有时会<em>乱码</em>,为...
解决中文乱码问题,页面端发出的数据作两次encodeURI
解决中文乱麻问题,页面端发出的数据作<em>两次</em>encodeURIvar name=&quot;张三&quot;;encodeURI(encodeURI(name));后台解码: URLDecoder.decode(name,&quot;UTF-8&quot;);参考:http://blog.csdn.net/zqd_java/article/details/53608585-----------------------------------...
js encodeUrl两次原理
当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操作系统的字符集进行编码提交到服务器,服务器会按照配置的字符集进行解码,所以如果两者不一致就会导致<em>乱码</em>。如果只进行一次encodeURI,因为encodeURI函数采用UTF-8对URL进行编码,所以如果服务器在进行解码时使用的是其他的编码方式就会<em>出现</em><em>乱码</em>,默认的服务器配置的解码字符集都不是UTF-8,所以大部分情况下地址栏提交中文查询参数时
JS提交中文encodeURI两次
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z 1. JS: escape :
前台参数使用Ajax请求时将参数带在URL后面需要两次encodeURI
<em>为什么</em>网上会有人提出在客户端对字符串重复编码<em>两次</em>呢.      如果因为项目需要,不能指定容器使用何种编码规则来解码提交的参数, 比如:需要接收来自不同页面,不同地址编码的参数内容时。 (又或者是开发人员被这有点复杂的东东搞得晕头转向,不懂得如何正确的去做好这接收参数的工作)  这个时候,在客户端对参数进行二次编码,可以有效的避开“提交多字节字符”的这个棘手问题。      因为第一次编码,
在struts2种解决url中文乱码的方法(其中一种方法)
只要在struts2种配置这样一个属性就ok了
url 里面的中文使用encodeURI,需要使用二次encodeURI
encodeURI 和 decodeURI 成对使用 encodeURI()     把字符串编码为 URI。 decodeURI()     解码某个编码的 URI。 encodeURIComponent 和decodeURIComponent 成对使用 encodeURIComponent()      把字符串编码为 URI 组件。 decodeURIC
url 参数传递中文乱码问题 即 利用 js 的 encodeURI解决中文乱码问题
传入参数(含中文): jsp中 jsp/manege/myschool/teacher.jsp?schoolId=${user.id}&schoolName='+encodeURI(encodeURI('${schoolname}'));"> 接受参数: var schoolName = ""; 注意:必须<em>两次</em>编码和<em>两次</em>解码才能保证不同服务器上均不
URL传中文参数导致乱码的解决方案之encodeURI
URL传中文参数导致<em>乱码</em>的解决方案之encodeURI
完美解决location.href=“url乱码问题
前端html:location.href=“<em>url</em>?content=中文”;后台接收:String str = new String(request.getParameter(&quot;content&quot;).getBytes(&quot;ISO-8859-1&quot;), &quot;UTF-8&quot;);完美解决!!!
使用encodeURI和decodeURI转码和解码
encodeURI() 函数可把字符串作为 URI 进行编码。 语法: encodeURI(URIstring) 参数 描述 URIstring 必需。一个字符串,含有 URI 或其他要编码的文本。 返回: URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。 说明 该方法<em>不会</em>对 ASCII 字母和数字进行编码,也<em>不会</em>对这些 A...
window.open使用时候url中文转码解决
function _showTopOrgUser(<em>url</em>){ top._show('机构用户',encodeURI(encodeURI(<em>url</em>)),'sCont1',600,300); } 调用的时候一定要转码 var showUserFormatter = function(elCell, oRecord, oColumn, oData) { var id = oRecord.g
C# JS URL 传参出现乱码的解决方法
在传参是先编码在传输,接受时先编码,在接收。 string mm=Server.URLEncode(你); Response.Redirect(index.aspx?mm=+mm); 然后在接收页解码: string mm = Server.URLDecode(Requext.querystring(mm)); js: 传参:用encodeURI("<em>url</em>参数")将
xampp中集成的数据库MariaDB中文乱码问题
MariaDB中文<em>乱码</em>问题,百度了好多教程都没解决,改那个配置文件my.ini没用,最后在知乎上看到用set names latin1;解决了问题。
请大神帮我分析一下为啥点击两次按钮才能正确执行
&sa=" method=post >               请选择日期 至           QW=request.QueryString("qw")    sa=request.QueryString("sa")     %>               if QW="" or sa="" then Response.Write"没有您要查询的数据请重新查询
JS向后台传汉字为乱码的解决方法:两次URL参数编码
通过JS,URL参数向服务端传递中文参数的时候,经常遇到<em>乱码</em>问题。最烦人的情况是,有的机器是正常的,有的机器是不正常的。几年前,就遇到过这个问题,没有完美的解决办法。今天,又遇到了这个问题,参考了下面网友的方法,很好地解决了。encodeURI(encodeURI(params)), top.dialog({        <em>url</em>: '/contact/dialog?contactId='+c
IE7、IE8下使用escape、encodeURI传递中文参数乱码的问题及解决方案
js跳转到指定页面,一旦escape()中文数据,浏览器就会终止和没有反应。上网搜了半天始终不得解。一种说法是,escape中文之后,<em>url</em>中<em>出现</em>了%u,IE7和IE8拒绝执行。目前看来差不多是这样的。不得已,只好使用encodeURI(),但是asp并不能接受encodeURI的中文,而是解析成<em>乱码</em>。于是又上网搜了半天,始终不得解。应该是asp以及vbscript中并没有这样的内置函数。于是不得
前台URL传递中文参数到java后台乱码的问题
要encode<em>两次</em>!!! encodeURI(encodeURI(‘中文字符’)
解决url中包含中文导致的乱码
今天的项目中碰到了一个<em>乱码</em>问题,从JS里传URL到服务器,URL中有中文参数,服务器里读出的中文参数来的全是“?”,查了网上JS编码相关资料得以解决。 解决方法如下:  1、在JS里对中文参数进行<em>两次</em>转码  复制代码代码如下: var login_name = document.getElementById("loginname").value;  login
freemarker 接收中文为乱码(get提交方式)
大致情况: 左边是一棵栏目树,右边是一个iframe,要求点解击栏目树的节点,跳转一个页面显示在iframe 中文传过去为<em>乱码</em>,我界面编码方式是utf-8 JS方法 function choiceChannel(cid,cname){          jQuery("#openDirect_frame").attr("src",encodeURI("/xxx.htm?channelId
JS端GET请求encodeURL到web端decodeURL乱码问题
JS:window.location.href = "down.action?filepaths=" + encodeURI(encodeURI(filepaths));WEB:String s = URLDecoder.decode(filepaths, "utf-8");*JS端进行2次编码,之后发给web端进行一次解码就可以了.原理:web端对请求参数默认底层有一次解码动作,是使用ISO885
JS在URL编码时遇到的加号问题
在我做js编码的时候碰到了问题,可能大家有遇到。我用escape()函数进行编码,可是发现他对加号“+”进行了过滤。在解码的时候“+”变成了空“ ”。做了测试encodeURI()函数也是一样都对“+”进行了过滤。解决方法:encodeURIComponent()函数对加号“+”进行了编码,所以问题解决了!ok
中文乱码 encodeURI来解决URL传递时的问题
前台获取数据var str =&quot;张三&quot;;encodeURI解码后传参到后台变成<em>乱码</em>可以经过<em>两次</em>encodeURI解码再传参var name=&quot;张三&quot;;encodeURI(encodeURI(name));后台解码: URLDecoder.decode(name,&quot;UTF-8&quot;);eg:String str = java.net.URLDecoder.decode(personNameStrp,&quot;U...
vue form登录需要点击两次问题
问题描述:在做登录页面时,使用Form和submit,和reset,因为可以自动添加回车登录事件和置空功能,很方便。但是也遇到了问题。第一次点击登录按钮时,并没有执行 submit的click事件,而是在地址栏中添加了一个问号,并且刷新页面。第二次点击登录时才执行click。可能原因:form中的submit带有默认的提交和跳转动作,在点击submit时,执行的时默认的提交和跳转解决方案:给sub...
angular 界面跳转点击两次才展示
最近首次使用$location.path时,<em>出现</em>了一个问题,就是改变路径后 $location.path('/result') 需要点击<em>两次</em>后才会跳转。 解决办法: 在后面加上$scope.$apply() $location.path('/result'); $scope.$apply();
webView 加载的url时,文字出现乱码解决办法
原因:因为<em>url</em>中的内容需要UTF-8解码 方法1: NSURL* <em>url</em> =[NSURL URLWithString:@&quot;http://xxx&quot;]; NSData *data = [NSData dataWithContentsOfURL:<em>url</em>]; [self.webView loadData:data MIMEType:@&quot;text/html&quot; textEncodingName:@&quot;...
中文乱码 URLEncode之后,后台获取仍是乱码问题详解
在做项目时遇到一个问题,是对于含中文字符的
URL中文乱码的问题,特殊字符的解决办法
<em>url</em>参数中<em>出现</em>+、空格、=、%、&、#等字符的解决办法,<em>url</em>中<em>出现</em>中文字符的解决办法 encodeURIComponent() encodeURI()
URL编码与两次encodeURI
当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操作系统的字符集进行编码提交到服务器,服务器会按照配置的字符集进行解码,所以如果两者不一致就会导致<em>乱码</em>。 encodeURI函数采用UTF-8对URL进行编码,所以如果服务器在进行解码时使用的是其他的编码方式就会<em>出现</em><em>乱码</em>,默认的服务器配置的解码字符集都不是UTF-8,所以大部分情况下地址栏提交中文查询参数时会产生<em>乱码</em>;针对这种情况,
scanf()为什么要输入两次才出结果?
编写程序如下 int main() {  int n;  printf("请输入一个数");  scanf("%d\n",&n);  printf("\n");  return 0; } <em>为什么</em>要输入两下才出结果呢? 这是因为scanf中写了\n,scanf与printf不同,需要敲击一个回车才能进行读入操作。因此不能将两者的用法混淆了
为什么get请求会出现乱码
一、有时候我们在处理get请求时,比如下面的一个<em>url</em>跳转 window.location.href = "某个<em>url</em>" 当你的<em>url</em>里存在某个参数为中文字符,那么你就可能遇到<em>乱码</em>问题,<em>为什么</em>说可能呢,因为tomcat默认编码其实是ISO-8859-1,如果你在tomcat服务器配置了utf-8编码的话(config目录下的server.xml文件),就<em>不会</em>出<em>乱码</em>了,配置如下(注意在你的使用的
js中的onclick事件在ul获取li时点击两次才会执行的原因
js中的onclick事件在ul获取li时点击<em>两次</em>才会执行的原因下面的代码中 只有onclick第二次才会执行函数内部的代码代码实例如下:&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;title&amp;gt;js点击事件&amp;lt;/title&amp;gt;
jsp URL中文传参乱码问题
一、在请求页面的请求参数需要用encodeURI进行转码,然后在接收请求的页面需要进行字符集转换。 本例中的请求和接收页面的字符集都是UTF-8: 1.请求的JSP页面用JavaScript的encodeURI()方法将参数转码: function toView(param){      var encodeparam = encodeURI(param) ;      window.l
java后台请求使用URLEncoder.encode给url追加中文乱码问题
URLEncoder.encode("xxxx")编码会异常,根据到源码中 dfltEncName = AccessController.doPrivileged( new GetPropertyAction("file.encoding") 默认编码是file.encoding,打断点发现是GBK 但是后台使用的是utf-8所以<em>出现</em>了<em>乱码</em> 解决:在tomcat中设置fil
调用encodeURI来解决乱码问题的原因
encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码. UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号. 假设页面端输入的中文是一个“中”,按照下面步骤进行解码 1.第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节转化成对应的16进制数,这样就变成了
单引号需要敲两次才能输入
你有没有碰到过引号(单引号)键需要敲<em>两次</em>才能输入,敲一次不能输入? 这时,你一定以为键盘坏了吧? 1、原因:英语输入法的键盘模式设置选择了“美国英语-国际”,而正确的英语输入法键盘应该选择“美式键盘”。 2、解决问题步骤(操作系统WIN7): 见下面的图一(正确设置): 键盘选择,点“添加”按钮,见下面的对话框(图二): 在”美式键盘(默认)“前打勾,不要选”美国英语-国际“
android edittext 点击两次才弹出输入法的解决方法之一
editText: 据说第一次是编辑框焦点,第二次才是点击事件,输入法软键盘才会弹出. 既然这样, 那就调用代码调用<em>两次</em>点击事件.算是一种解决方法. holder.editText.setVisibility(View.VISIBLE);holder.editText.requestFocus(); holder.editText.callOnClick();holder.editText.c
解决clipboard在modal中点击两次才能成功问题
js复制内容到剪贴板一个简单兼容性好的解决方案是使用:clipboard 不需要借用flash。 解决bootstrap modals中点击<em>两次</em>才生效问题。
url请求中的中文乱码处理
form有2中方法把数据提交给服务器,get和post,分别说下吧。  (一)get提交    1.首先说下客户端(浏览器)的form表单用get方法是如何将数据编码后提交给服务器端的吧。          对于get方法来说,都是把数据串联在请求的<em>url</em>后面作为参数,如:http://localhost:8080/servlet?msg=abc  (很常见的一个<em>乱码</em>问题就要<em>出现</em>了,如果
ajax 传参编码格式问题encodeURI
var time = [] 1,2 var param = [{“type”:“string”,“value”:time [0]},{“type”:“string”,“value”:time [1]}] this.getAjax(’http:// localhost / service / ext / query / lvzhicishu?param =’+ encodeURI(JSON.stri...
解决JSP_url参数中文乱码及用JS_javascirpt编码js实现encode后台JSP_解码decode的实现
一、正常JSP加密方法     ">点击这里    二、正常JSP解密方法   //request.setCharacterEncoding("GBK");    if(request.getParameter("<em>url</em>")!=null )    {    String str=request.getParameter("<em>url</em>"); 
关于a标签点击两次才能触发的问题解决
最近写了一个python 表格导出excel ,前端技术超级薄弱,百度出来这个a标签拼接 $(&quot;#down&quot;).click(function () { &quot;/record/downeventtag?interface=&quot;+interface+&quot;&amp;amp;curdate=&quot;+time+&quot;&amp;amp;event_tag=&quot; +event_tag+&quot;&amp;amp;event_subject=&
一个http请求二次请求才能获取到数据,为什么url的问题?
public static void t(String[] args) throws ClientProtocolException, IOException, InterruptedException{ HttpClient httpClient=new DefaultHttpClient(); HttpPost httpPost=new HttpPost("http:/
动态创建添加按钮后,解决开始需要点击两次才能触发,之后点击一次就可以了
测试 td { text-align:center; } td input{ border:none; width:100%; } .mask{background-color:rgba(0,0,0,0.1);width:
ENcodeUrl传值造成的中文乱码解决方案
这段时间在公司写了第一个模块,项目框架是由spring + struts + ibatis 组成的,作为一个老项目上线已经很久了,而且项目的底层都已经相当完善,为了新增这个模块,页面交互部分做了一段时间的学习,页面传值就用了很多种方法,其中一个页面使用encode<em>url</em>()进行跳转页面附加传递一些action需要的参数和值。解决方案:首先,encode<em>url</em>(&quot;&quot;)中间是字符串格式,比如:var ...
ajax或url传值之乱码再见
在工作中遇到几次<em>url</em><em>乱码</em>的问题,这次就做下整理: $.ajax({ "contentType" : "application/json", "<em>url</em>" :xxx/xxx/xxx.action?a=不要<em>乱码</em>&b=不要再次<em>乱码</em>, "dataType" : "json", "success" : function(data) { //bootbox.alert('取消成功!',
JS中文转换(UTF-8),url传递中文乱码解决
js合成<em>url</em>时,如果参数是中文,传到struts2中会<em>乱码</em>,解决办法如下: 1.js文件中使用encodeURI()方法(必须套两层)。 login_name = encodeURI(encodeURI(login_name));   2.action中URLDecoder解码 loginName = java.net.URLDecoder.decode(loginName,"UTF-8
php获取url中文字符乱码
咳,今天遇到一个问题获取URL中文字符<em>乱码</em>,搞了半天。php中<em>url</em>地址栏传参数中文<em>乱码</em>解决方法汇总php地址栏传中文$_GET下来后<em>乱码</em>,<em>url</em>encode和<em>url</em>decode用法详解<em>url</em>编码语法: string <em>url</em>encode(string str);返回值: 字符串函数种类: 编码处理$ChineseName="我的名字,是中文的哦";$EncodeStr
为什么前端页面encodeURI(url)两次,可以避免后台中文字符乱码
1.先简单介绍javaScript中的编码方法:  escape() 方法:  采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。 encodeURI() 方法:把URI字符串采用UTF-
SetOnClickListener点击两次才响应
SetOnClickListener点击<em>两次</em>才响应
nodejs后台乱码问题解决
最近在学习nodejs,在做一个后台传参的时候,发现
TextView按钮点击第二次才有响应的问题解决
发现了一个TextView要点击到第二次才会有事件响应的问题,原因是在TextView属性中设置了 android:textIsSelectable="true" 这个属性可以让文本支持选择复制,但是如果这个TextView是作为一个按钮赋予是事件的话就会导致冲突.我把这个属性去除后果然就解决了问题.
Android EditText点击两次才能响应,解决办法
在编写程序的过程中,发现EditText setOnClickListener事件响应中,只有获取焦点的时候才会响应, 如当焦点在别的控件上时,只能先点击获取焦点,第二次点击才会响应,解决办法改用setOnTouchListener监听, android.view.View下的OnTouchListener接口是只要触摸(touch)状态改变,就会触发该事件。先记录下来,分享一下
两个页面跳转 url传中文 非法字符及乱码
问题:从一页面跳转到二
开发日志:js使用encodeURI要注意null,防止传递undefined
查询条件使用js跳转<em>url</em>,在传递中文参数的使用到了encodeURI,搜索后发现后台数据查不出来 debug后发现SQL查询在where条件中有个参数值是undefined 回到js去排查错误,发现alet(XXX)<em>出现</em>undefined 刚开始在js加了个简单的判断 var XXX = $("#XXX").val()=="undefined"?"":encodeU
特殊字符,# + %在url中传递,encode方式加密处理
前端部分, encodeURIComponent编码要传递的<em>url</em> var send_data={'name':'2123##%&+212'}<em>url</em>: g_<em>url</em>+ "goods/add/data/" + encodeURIComponent(encodeURIComponent(JSON.stringify(send_data))), 后端接受需要URLDecoderString s = ne
TreeList控件复选框需要点击两次才能选中(打勾)
此问题原因是因为t设置了  reelist.OptionsBehavior.AllowIndeterminateCheckState = true 该属性默认为false,改为false即可实现点击一次就可以勾选
文章热词 机器学习 机器学习课程 机器学习教程 深度学习视频教程 深度学习学习
相关热词 bootstrap中文出现乱码 c++出现乱码 c++为什么要预编译 c++为什么find两次出错 为什么要学习python 要学python
我们是很有底线的