Js Url传中文参数乱码解决办法

解决方法如下:
 
1、在JS里对中文参数进行两次转码

 代码如下 复制代码

var login_name = document.getElementById("loginname").value;
login_name = encodeURI(login_name);
login_name = encodeURI(login_name);

2、在服务器端对参数进行解码

 代码如下 复制代码

String loginName = ParamUtil.getString(request, "login_name");
loginName = java.net.URLDecoder.decode(loginName,"UTF-8");

javaScript中的编码方法:

1、escape() 方法:

采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字符: @ * / +

2、encodeURI() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '
3、encodeURIComponent() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )

因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。

时间: 2024-09-24 12:16:41

Js Url传中文参数乱码解决办法的相关文章

ajax如何传中文参数乱码解决办法

传递中文参数,然后修改数据库教程的.  代码如下 复制代码 <script> var url="admin/ajaxmodify.php?"+key+"=";  url+=encodeuricomponent(encodeuricomponent(value));   xmlhttp.open("get",url,true);   xmlhttp.send(null); </script> 参数是中文encodeurico

JS URL传中文参数引发的乱码问题_javascript技巧

解决方法如下: 1.在JS里对中文参数进行两次转码 复制代码 代码如下: var login_name = document.getElementById("loginname").value; login_name = encodeURI(login_name); login_name = encodeURI(login_name); 2.在服务器端对参数进行解码 复制代码 代码如下: String loginName = ParamUtil.getString(request, &

C# URL带中文参数的解决办法

   public static string InitChineseUrl(string chineseUrl)          {              Uri url = new Uri(chineseUrl);              System.Collections.Specialized.NameValueCollection nv = System.Web.HttpUtility.ParseQueryString(url.Query, System.Text.Encod

Java中URL传中文时乱码的解决方法_java

前言 Java中URL传中文时乱码的问题相信不少朋友都遇到过,最近就遇到一个问题,就是在Action当中把一条中文信息绑定在URL的后面,ActionForward到别一个页面时,用reqeust.getParameter取出是出现乱码的问题. 解决办法 1.对要进行URL传递的中文字符进行编码: String message = java.net.URLEncoder.encode("中文字符","utf-8"); 2.在取URL传递中文的页面对字符进行解码: S

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

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

JS传值出现中文参数乱码的解决方法_javascript技巧

本文实例讲述了JS传值出现中文参数乱码的解决方法.分享给大家供大家参考,具体如下: function PopupFK(cNum,type){ var url = "contract!Paying.action"; url = url + "?contract.contractNum="+cNum+"&payingType="+type; // if(isEmpty($(_this).attr("payId"))){ /

WordPress上传中文附件乱码解决方法

熟悉PHP的朋友可能会很快解决问题,但不熟悉PHP代码的朋友看过此文章相信一定能解决你的问题,接下来就分享下我的解决wordpress上传中文文件名乱码的心得吧~: 找到/wp-admin/includes/file.php这个文件,并最如下修改:  代码如下 复制代码 function wp_handle_upload( &$file, $overrides = false, $time = null ) { //-. // Move the file to the uploads dir /

动态加载iframe时get请求传递中文参数乱码解决方法_javascript技巧

当用户的页面需要动态加载iframe 时, 如果iframe的src中包传中文参数会出现编码错误:必须加编码,然后再解码. 编码:encodeURI(encodeURI("包含中文的串")) 解码:java.net.URLDecoder.decode("需要解码的串","utf-8"); 解决方案 使用 encodeURI('中文') 进行编码操作, js代码: 复制代码 代码如下: $(function() { $('#frame').attr

jsp cookie存入中文值乱码解决办法

解决办法原因是: 使用java.net.URLEncoder.encode()可以对要传递的中文进行编码 a.在传参数之前先把参数进行转码:java.net.URLEncoder.encode(param); 取值时用语句java.net.URLDecoder.decode(param);再转回中文 例,设置cookie  代码如下 复制代码 <%  String str = "这是中文的cookie值";  Cookie c = new Cookie("str&quo