转自:
http://blog.csdn.net/yangyz_love/article/details/7963497
URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码。
这将涉及到字符解码操作,我们在应用中常常会用new String(fieldType.getBytes("iso-8859-1"), "UTF-8");等类似的方法去解码。但这种方式受具体应用环境限制,往往在应用部署环境发生改变时,还会出现中文乱码。
在这里介绍一种解决方法,可以在任何应用部署环境下通用。此方法分两步:
1、在客户端用escape(encodeURIComponent(fieldValue))方法编码,例如:
title=escape(encodeURIComponent(title)); //这是js里的函数
url="<%=request.getContextPath()%>/print/printList!printTable.action?title="+title;
2、在服务端用java.net.URLDecoder.decode(getRequest().getParameter("title"),"UTF-8"),进行解码。
-----------------------------------------------------------------------------
parent.window.location.href 和 iframe中src的乱码问题。
要在这两个url地址中传中文,必须加编码,然后再解码。
编码:encodeURI(encodeURI("包含中文的串"))
解码:java.net.URLDecoder.decode("需要解码的串","utf-8");
encodeURI方法是正确的,只是需要使用两次encodeURI方法,例如encodeURI(encodeURI("中文"));第一次是 把中文编码成%xy的格式,第二次是对%xy中的%进行编码,%编码成%25。整个传参过程大体应该是:提交页面使用 encodeURI(encodeURI("中文"))编码,把最后的编码结果%25xy传递给处理页面的过程中,浏览器获取URL地址(注意 openModelDialog方法,浏览器获取不到参数编码)后解码成%xy,然后把%xy传递给处理页面,处理页面使用 URLDecoder.decode(request.getParameter("参数名"),"UTF-8");完成解码。
总结:
1、汉字出现在URL路径部分的时候不需要编码解码;
2、使用encodeURI进行2次编码;
3、在openModelDialog()打开的模式窗体里没办法用request.getParameter正确获取参数;
相关推荐
asp.net页面通过URL参数传值中文乱码问题解决办法
asp.net中URL参数传值中文乱码的三种解决办法
本节讲的是ajax 的URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码。
在websphere 中使用的是url=encodeURI(encodeURI(url)); //用了2次encodeURI 测试成功,第一次转换没有尝试, 处理方法一。 js 程序代码:url=encodeURI(url);注意是整个URL 服务器端的代码:String linename = new ...
解决:delete.action?title=()%>传到action类出现乱码的问题
这是一个JS把汉字转换编码格式避免乱码的类,相当于ASP或是.NET中的UrlEncode方法.使用方法是var str = UrlEncode("这里是你要转换的汉字");这个方法有个缺点,不支持全角标点,所以要配合下面的方法把全角转换半角才...
url地址传参中文乱码处理
在传值时会遇到中英文乱码 <filter-name>GBKEncoding <filter-class>com.sshnews.filter.GBKEncodingFilter</filter-class> <filter-name>GBKEncoding <url-pattern>/*</url-pattern> </filter-mapping>
NULL 博文链接:https://sd8089730.iteye.com/blog/986204
为什么用表单的方式就可以传递中文,而URL的方式就不行了呢?非得用URL传值的方式才能解决问题吗?这里我想到了动态表单,何不用它来解决呢
在domino服务器中,通过ajax将数据提交后台时中文乱码的处理
本文实例讲述了JS传值出现中文参数乱码的解决方法。分享给大家供大家参考,具体如下: function PopupFK(cNum,type){ var url = "contract!Paying.action"; url = url + "?contract.contractNum="+cNum+"&...
主要介绍了解决java页面URL地址传输参数乱码的方法,URL地址参数乱码问题,算是老话重谈了吧!需要的朋友可以参考下
在页面中对URL进行编码,最好不要在URL中传递中文参数否则会出现乱码
php地址栏传中文$_GET下来后乱码,urlencode和urldecode用法详解url编码语法: string urlencode(string str);返回值: 字符串函数种类: 编码处理例如: 复制代码 代码如下:<?php$ChineseName=”我的名字,是中文的...
解决硬编码的上传文件的方式及配置文件传值、url传值的中文乱码,struts2文件的上传与下载
编码编好的url是正确的,可传到另一个页面 就会出错,在地址栏就已经乱码了 1.设置web.config文件 代码如下: <system> ”gb2312″ responseEncoding=”gb2312″ culture=”zh-CN” fileEncoding=”gb2312″> ...
利用JavaScript通过URL方式向后台代码传值是一种经常用到的手段,但在传递汉字时经常会出现字符不全或变成乱码的问题,其原因是由于客户端IE浏览器的编码方式为GB2312(简体中文版WINDOWS的默认设置),而后台的C#...