链接穿中文出现乱码
来源:互联网 发布:美容视频软件 编辑:程序博客网 时间:2024/04/29 21:57
解决方法:
1.。在tomcat的server.xml文件中设置URIEncoding="UTF-8"信息。如:
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
2.。用URLEncoder.encode(citytype,"utf-8")和URLDecoder.decode(citytype,"utf-8")对中文参数进行处理
3.。用new String(name.getBytes("ISO-8859-1"),"gbk"),其中编码要看服务器的编码来决定。。tomcat的是gbk。。当使用第三种这种办法。就要把第一种的添加的URIEncoding这种依赖容器编码那句话去掉。
同学的毕业设计出现JavaScript用encodeURIComponentt编码后无法再后台解码的问题。
原来他是这样写的:
window.self.location="searchbytext.action?searchtext="+encodeURIComponent(seartext);
java处理的代码为:
searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");/*需要处理异常*/
咋一看觉的没问题啊,一编一解的,应该可以了。但还是出现了乱码。
后来网搜资料,发现原来在对后台java程序里的searchtext赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,然后在使用searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");/*需要处理异常*/进行一次解码就好了。
正确的代码:
JavaScript:
window.self.location="searchbytext.action?searchtext="+encodeURIComponent(encodeURIComponent(seartext));
java:
searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");/*需要处理异常*/
另外还有一种方法是JavaScript进行一次编码,后台java处理时换种想法就好了:
java代码:
String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");
- 链接穿中文出现乱码
- 关于hibernate链接MySQL时,存储中文出现乱码
- jdbc 链接mysql执行sql语句出现中文乱码问题
- 中文输出出现乱码
- 中文保存出现乱码
- 中文后台出现乱码
- tomcat出现中文乱码
- QT出现中文乱码
- 控制台出现中文乱码
- Unity出现中文乱码
- MySQL出现中文乱码
- sublime出现中文乱码
- Linux出现中文乱码
- datastage出现中文乱码
- 页面出现中文乱码
- java中文乱码 防止出现中文乱码
- php链接数据库出现乱码
- jsp中文链接乱码大全
- main函数之前做了什么?
- 平淡与奇崛——GTS专家专栏:静水潜流 水到渠成
- Django中QuerySet方法与SQL对应语句比较
- java游戏开发--简单的几行代码就完成了驱动小精灵的编程
- 微软清洁工的故事
- 链接穿中文出现乱码
- 就业心态
- I/O上的等待事件 —— control file parallel write
- asp.net 页面延迟加载内容
- KM算法求完全匹配情况下的最大匹配
- 28个常见的“蓝屏”故障代码的排查信息
- PE文件头
- “英雄”与“将军”
- 使用 contextthemewrapper 设置 androidalertdialog 的样式