我在使用spring开发一个web应用程序时,遇到url使用中文作为参数值传递时发生乱码的问题。具体项目情况是通过android客户端调用web服务器提供的搜索功能,因此在调用的url中需要将客户端输入的关键字作为搜索的参数值,自然会涉及到参数值为中文的情况。经过网上查阅相关资料和大牛的分析,结合我自己的实际情况,现把解决办法贴上。
1、客户端使用java.net.URLEncoder.encode(Url, "UTF-8"),这里的url就是调用服务器端的url,将其进行utf-8编码。
2、服务器端获取到参数后,使用java.net.URLDecoder.decode(searchStr, "UTF-8"),将传递过来的参数进行utf-8解码。
3、完成以上两步不一定就能成功,这还与web服务器有关。我使用的是tomcat,因此需要确定tomcat的目录下的/conf/server.xml配置文件是否添加了如下代码:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"URIEncoding="UTF-8"/>,红色部分表示需要添加的,默认tomcat的配置文件是没有该代码的。
最后,简单介绍一下我在用浏览器测试url时发现的问题,当使用360浏览器测试时,url中的搜索关键字输入的是中文,回车之后,无返回结果,换作其他浏览器,比如firefox或者是chrome,即使url的参数值是中文,也能返回正确的结果,而且仔细观察看你会发现,当将chrome浏览器中带有中文参数值的url复制并粘贴到新标签时,中文参数值自动被转码了,如:searchStr=%E7%88%B1。将chrome中转码之后的url再粘贴到IE或者是360浏览器中进行访问,则会返回正确的值,由此说明,chrome、firefox一类浏览器会对中文值自动进行转码,而基于IE内核的浏览器则需要自己转码。以上仅是我测试之后得出的结论,如有不对,欢迎指正,非常感谢
分享到:
相关推荐
asp.net中URL参数传值中文乱码的三种解决办法
asp.net页面通过URL参数传值中文乱码问题解决办法
前后台传值乱码问题万能思想,通用 只说思想不讲代码!很少 很容易,看懂就完全不会出现乱码了!
本节讲的是ajax 的URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码。
传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理
js 中乱码处理法方式 encodeURIComponent(encodeURIComponent(customerAddress)) decodeURIComponent(customerName) js到java encodeURI(url) String qijuType= new String(request.getParameter( (...
jsp页面传值中文乱码问题处理.docx
主要为大家分享了介绍了java中文乱码之解决URL中文乱码问题的方法,感兴趣的小伙伴们可以参考一下
关于java中使用表单get方法传值出现乱码问题的解答。详细简单,便于学习使用。
NULL 博文链接:https://sd8089730.iteye.com/blog/986204
js及from传值乱码解决范例
java传值中的乱码,最简易的解决方法。 兄弟姐妹们,快来下载吧
主要为大家详细介绍了java中文传值乱码问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了解决java页面URL地址传输参数乱码的方法,URL地址参数乱码问题,算是老话重谈了吧!需要的朋友可以参考下
url地址传参中文乱码处理
这是一个JS把汉字转换编码格式避免乱码的类,相当于ASP或是.NET中的UrlEncode方法.使用方法是var str = UrlEncode("这里是你要转换的汉字");这个方法有个缺点,不支持全角标点,所以要配合下面的方法把全角转换半角才...
JAVA反编译文件解决中文乱码问题
主要介绍了Java Http请求传json数据乱码问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
网上很多描述java解压中文乱码的问题,很多描述不全.由于工作需要整理出一个完整版.简单实用.下载后请从ZipUtil.java的main方法开始,一目了然. public static void main(String args[]) { new ZipUtil().unZip("E:\\...