首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

经典中文乱码有关问题求解

2013-10-30 
经典中文乱码问题求解今天遇到用url地址转换中文:sshtomcat server.xmlURIEncodingUTF-8web.xmlfilter

经典中文乱码问题求解
今天遇到用url地址转换中文:
ssh

tomcat server.xml  

URIEncoding="UTF-8"

web.xml 

  <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>

url:请求:

msg=%B2%E2%CA%D4%B6%CC%D0%C5%BB%D8%B8%B4

System.out.println(URLEncoder.encode("测试短信回复", "GBK"));

后台获取到msg为为乱码 。

乱码 encoding web.xml tomcat url
[解决办法]
楼主是在分享是吧
[解决办法]
楼主是不是用模拟器测试的?模拟器解码就是乱码,这就是个BUG,用真机就好了。。
至于如果是web服务的解决方式:
http://blog.csdn.net/rzleilei/article/details/10019527
[解决办法]
解决方法:
    前台页面对传入的参数两次加密:( encodeURI(encodeURI(parameter))
    后台程序对接受的参数两次解密:URLDecoder.decode()

 如下:
   前台:location.href="<%=_path_%>/home/home_test.do?msg="+encodeURI(encodeURI(msg));
   后台:String msg= URLDecoder.decode(request.getParameter("msg"), "Utf-8");

原理:
      URLEncoder.encode(URLEncoder.encode("汉字","utf-8"),"utf-8")
[解决办法]
哈哈……在action中获取的时候转一下就可以了…在set方法中将Tomcat默认的iso_8859-1转为gbk就ok了

热点排行