//URL 传递中文的2种方法
//方法一:
String encodeUrl = java.net.URLEncoder.encode("costBudgetsForm.orgName=投资银行总部/北京三部","UTF-8");
String enString = java.net.URLDecoder.decode(encodeUrl,"UTF-8");
System.out.println(enString);
//方法二:(适合SSH, web.xml拦截器UTF-8,页面UTF-8)
encodeUrl = "costBudgetsForm.orgName=投资银行总部/北京三部"; //直接使用URL传递
String sString = new String(encodeUrl.getBytes("ISO-8859-1"), "UTF-8");
System.out.println(sString);
//方法三:
encodeUrl = java.net.URLEncoder.encode("costBudgetsForm.orgName=投资银行总部/北京三部","UTF-8");
String tranf = new String(encodeUrl.getBytes("ISO-8859-1"),"UTF-8");
enString = java.net.URLDecoder.decode(tranf,"UTF-8");
System.out.println(enString);
普通乱码:
尝试:1、使用过滤器进行拦截所有请求,设置request,response 编码
2、为了保证get数据采用UTF8编码,在TOMCAT web.xml 中进行了如下设置, URIEncoding ,
<Connector port="8080" ...... URIEncoding="UTF-8"/>
这里指定了get时候的数据编码。但是,当使用IIS作为webserver转发servlet/jsp请求给Tomcat时候,这个设置却失效了。其实原因很简单:IIS是通过AJP协议,把请求转发到Tomcat监听的8009端口上的,所以这里针对8080的设置自然就无效了。正确的方法是进行下面的设置:
<Connector port="8009" enableLookups="false" redirectPort="8443"
debug="0" protocol="AJP/1.3" URIEncoding="UTF-8"/>
页面URL传递中文 终极解决方案:
页面进行2次encodeURI编码,进行2次URI编码的好处是不管浏览器用户在页面来设置编码,服务器只需一次URLencode转换成UTF-8即可。
params = encodeURI(encodeURI(params));
后台
String paramsTrans = new String(params.getBytes("ISO-8859-1"),"UTF-8");
params = java.net.URLDecoder.decode(paramsTrans , "UTF-8");
当然如果页面参数太多可以使用jquery-form提供的serialize()序列化:
参见:http://ollevere.iteye.com/blog/1554355 (jquery serialize传中文乱码解决方法)
分享到:
相关推荐
ASP.NET的字符编码问题真是搞得人头疼,其中的中文很容易产生各种乱码问题,而这些乱码归根结底都是因为使用...因为常常需要通过URL字符串在不同页面间传递参数时遇到中文,必须进行编码和解码,否则传递的参数不正确。
asp.net下url传递中文的解决方案
url传递中文的解决方案
解决奇数个中文字符url传递乱码问题,做了好久才找到的解决方案!
js 全选反选取消, ASP.NET中url传递中文的解决方案, C#中使用反射显示程序集的所有类型和属性, js怎么取表格中的某一行的值, SQL Server 查询分析器快捷键集合, URLRewrite能够对URL进行重写,失败的原因
javascript通过url向jsp页面传递中文参数乱码,一直都是从事jsp开发者比较烦心的是,于是本文介绍了一些解决方法,感兴趣的朋友可以了解下
利用JavaScript通过URL方式向后台代码传值是一种经常用到的手段,但在传递汉字时经常会出现字符不全或变成乱码的问题,其原因是由于客户端IE浏览器的编码方式为GB2312(简体中文版WINDOWS的默认设置),而后台的C#...
启用URL参数在解决方案资源管理器中右键点击你的ClickOnce工程,点击属性进入发布选项卡,点击“选项”按钮,在弹出的界面中选中“允许给应用程序传递URL参数”。 获取参数 下一步就是获取url里的参数值,因为Click...
本讲将通过实例比较ASP.NET下的三种典型URL重写方案——ISAPI重写(使用开源组件IIRF),ASP.NET2.0内置的urlMappings和基于自定义HTTPModule的URL重写(使用NBear.Web中的UrlRewriteModule实现),并探讨URL重写中...
本文实例讲述了js获取url传值的方法。...这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET 函数: [removed] function GetRequest() { var url = locati
解决方案: 1 、改用post方法; 2 、在 js 里用 url = encodeURI(encodeURI(XXX)) ,后台再解码一次; 3 、传递参数的时候直接替换转义,或者直接写转义后的代码 data = “a + b”; data = data.replace(/\+/...
保留2位有效小数及四舍五入 5.url传递中文的解决方案 6.把123456789转换为12-345-6789的3种方法 7.交换两个指定位置字符的4种方法 8.“%10”的妙用 9.输出21个AAAAAAAAAAAAAAAAAAAAA的巧妙做法
在Web.comfig中配置 是一样的: ”gb2312″ responseEncoding=”gb2312″/> 页面Header部分也都有 <... charset=gb2312″ /> 真是奇怪, 只好用了笨办法: 写参数: 代码如下: string strurl = PreUrl + “?...
本Demo实现了一个来自不同服务器的前端页面集成方案,页面间通过window窗口...本方案从父页面到子页面数据传递采用url传参,从子页面到父页面数据传递采用了引入代理页面,window.name的跨页面共享,js函数回调等技术。
微信小程序tab页面不能传参解决方案: 1.设置全局变量,通过全局变量访问 2.小程序本地存储 小程序不支持tab页面传递queryString参数,无论是navigator,还是通过api跳转 遇到的问题如下: 小程序navigator组件默认不...
之前讲到了自定义Adapter传递给ListView时,因为ListView的View回收,需要注意当ListView列表项中包含有带有状态标识控件的问题。详情可见之前发的帖[url=自定义Adapter实现ListView带多选框等状态控件的注意事项 //...
此项目已废弃,有更好更快更便捷的解决方案 移步 目前此项目demo正在完善中,已上传时序图 解决场景 使用java生成动态数据的pdf文件 页尾有截图,一目了然 方案优点 纯vue编写,避免繁杂且不直观的java api操作,...
随着Angularjs,React,Vue的流行组件式的开发方式成为另一种不错的解决方案。 最近就有一些小伙伴问我,vue组件之间是如何传递参数的?其实vue是有三种方式可以组件之间传递数据(props,组件通信,slot),这次就说...