`
haihongxingzi
  • 浏览: 150664 次
  • 性别: Icon_minigender_1
  • 来自: 瑟孔达
社区版块
存档分类
最新评论

url传递中文乱码解决方法

阅读更多
URL中的中文问题 

       对于直接通过在URL中传递中文参数,如“http://localhost/a.jsp?str=中文”这样的get请求,在服务端用request.getParameter("name")时返回的往往是乱码。按以上的做法设置Filter没有用,用request.setCharacterEncoding("gbk")的方式,仍然不管用。 
             例如,建立test2.jsp文件,内容为: 

<%@ page contentTyp="text/html;charset=gbk"%> 
<% 
       String str=request.getParameter("chStr"); 
      if(str==null) str="没有输入值"; 
%> 
<html> 
      <head> 
         <title>中文Test</title> 
         <meta http-equiv="Content-Type" content="text/html;charset=gbk"> 
         <meta http-equiv=param content=no-cache> 
      </head> 
      <body>你输入的内容为:<%=str%><br> 
      <form action="test.jsp" method="post"> 
         <a href="test2.jsp?chStr=中文">点击这里提交中文参数</a> 
      </form> 
      </body> 
</html> 

       运行后,可见通过URL传递的中文参数取出来过后变成了乱码,造成这种结果的原因是Tomcat中以get方式提交的请求对query-string处理时采用了和post方法不一样的处理方式。 
       解决这个问题的方法是打开Tomcat安装目录下的/conf/server.xml文件,找到Connector块,往其中添加URIEncoding="gbk",添加过后完整的Connector块代码如下: 
<Connector port="8080"               
maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
enableLookups="false" redirectPort="8443" acceptCount="100" 
    debug="0" connectionTimeout="20000" 
    disableUploadTimeout="true" 
    URIEncoding="gbk" 
    /> 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics