js ajax中传递中文参数处理

   ajax中传递中文参数处理代码:

 代码如下  

js中:

send_request('http://www.45it.com /mini_do.php?username=' + encodeURI(username) + '&phone=' + encodeURI(phone)+ '&content=' + encodeURI(content));

mini_do.php中:

$username = urldecode($_REQUEST[username]);
$phone = urldecode($_REQUEST[phone]);
$content = urldecode($_REQUEST[content]);

  最后有朋友说可以使用escape函数

  var htmer ="getcode="+escape(getcode)+"&Content="+escape(Content);

  这个本人不建义哦因为它出错更高有些汉字字符不能识别,还有一个函数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

  编码范围来看我们选择encodeURI是最佳的选择了。

时间: 2024-09-29 03:34:10

js ajax中传递中文参数处理的相关文章

ajax中传递中文参数的编码问题

ajax|编码|问题|中文 遇到问题:在使用xhr发出请求时,请求的url中参数带中文,这时在后台解析request得不到中文如:request = new ActiveXObject("Microsoft.XMLHTTP");request.open("GET", url);中我的url需要带中文参数直接加参数是在后台解析不出来的,所以我使用方法对url进行编码转换 在页面中中文参数传递前先转码: function enCode(chineseStr) {    

GET方法URL中传递中文参数乱码的解决方法_JSP编程

1.在页面中对你的URL进行编码 使用------encodeURI(你要使用的中文参数值)如:...?username"+encodeURI("小甜甜") 2.在后台通过解码来接收该中文参数 使用----String name = new String(request.getParameter("username ").getBytes("iso8859-1"),"utf-8") 3.最好不要在URL中传递中文参数

在asp.net页面中传递中文参数

asp.net|页面|中文 1.设置web.config文件.     <system.web>       ......       <globalization   requestEncoding="gb2312"   responseEncoding="gb2312"   culture="zh-CN"   fileEncoding="gb2312"   />       ......      

Jsp传递中文参数详解

目前在jsp页面中传递中文参数,主要有两种方式:      URL方式,例如:http://website/test1.jsp?act=add&type=桔子&param=%20D%20B      FORM方式,例如:         <form name=test   mehtod="post">         <input type=hidden name=text2 value="中文">         <i

真正的JQuery.ajax传递中文参数的解决方法_jquery

本人最近也遇到了需要传递中文参数的问题.在网上搜索一下,复制粘贴发的到处都是的"终极""解决方案"无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去. 我很久以前一直在使用Prototype框架.在.net-GB2312或jsp-utf8下都使用过,从来没遇到有字符编码的问题.于是将Prototype和JQuery代码都下载下来打开研究原因.具体结果如下 不同之处在于JQuery默

JQuery.ajax传递中文参数的解决方法 推荐_jquery

本人最近也遇到了需要传递中文参数的问题.在网上搜索一下,复制粘贴发的到处都是的"终极""解决方案"无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去. 我很久以前一直在使用Prototype框架.在.net-GB2312或jsp-utf8下都使用过,从来没遇到有字符编码的问题.于是将Prototype和JQuery代码都下载下来打开研究原因. 不同之处在于JQuery默认的cont

jquery.ajax的url中传递中文乱码问题的解决方法

 本篇文章主要是对jquery.ajax的url中传递中文乱码问题的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 JQuery   JQuery默认的contentType:application/x-www-form-urlencoded    这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1    ISO8859-1,通常叫做Latin-1.Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符.   JQuery的Ajax根本没有考

Ajax传递中文参数到后台乱码的有效解决方法_AJAX相关

使用Ajax传递中文参数,如果不对参数进行处理的话,传到后台会变成乱码,经测试可以使用如下方法 这里是以jquery.autocomplete插件中获取输入框中的数据传到后台为例: 注意要对中文使用encodeURI编码两次 复制代码 代码如下: extraParams: {q:function(){return encodeURI(encodeURI($('#keyword').val()))}} 这里同样也要解码两次 复制代码 代码如下: String key = URLDecoder.de

JS URL传递中文参数时出现乱码的处理

原文:JS URL传递中文参数时出现乱码的处理      在浏览器中显示的地址是这样的:   但是按F12调试的时候的地址却变化掉了:               这个肯定是是因为浏览器对url路径默认编码了.这个问题是在我们去取值的时候,得到的就是后面那一大串稀奇古怪的东西.得不到我们想要的值.怎么办呢?这里写出来的只是自己的解决方法,也许不能通用,跟大家分享下,有更好的方法,告我一声.      //得到url中的值 function request(paras){ var url = lo