当输入中文用户名是,无法验证通过,获取username值,打印出来是????,求高手解析!!!我已经在tomcat5.0中设置了URIEncoding="GBK"。。网上的说法!!
<Connector    
port="8080"     
maxThreads="150"
minSpareThreads="25" 
maxSpareThreads="75"
enableLookups="false" 
redirectPort="8443" 
acceptCount="100"
debug="0" 
connectionTimeout="20000" 
disableUploadTimeout="true"
URIEncoding="GBK"
/>
验证代码如下:
public void doGet(HttpServletRequest req,HttpServletResponse res){
try {
res.setContentType("text/html;charset=UTF-8");
req.setCharacterEncoding("UTF-8");
     PrintWriter pw=res.getWriter();
     String u=req.getParameter("username");
     System.out.println (u);
     String p=req.getParameter("passwd");
     UBC ubc=new UBC();
     if(ubc.check(u,p)){
     String keep=req.getParameter("keep");
     if(keep!=null){
     Cookie name=new Cookie("name",u);
     Cookie pass=new  Cookie("pass",p);
     name.setMaxAge(3600*24*14);
     pass.setMaxAge(3600*24*14);
     res.addCookie(name);
     res.addCookie(pass);
     System.out.println (name);
     }
     HttpSession hs=req.getSession(true);
     hs.setMaxInactiveInterval(60);
     hs.setAttribute("pass",u);
     String kk=this.getServletContext().getAttribute("times").toString();
     this.getServletContext().setAttribute("times",(Integer.parseInt(kk)+1)+"");
    
     res.sendRedirect("MAIN");
     }
     else{
     res.sendRedirect("LG");
     }
    
}
catch (Exception ex) {
ex.printStackTrace();
}
}其中System.out.println (u);后台打印出来是???
求解决此中文输入验证的方法!!!!
。在线等!!!!!

解决方案 »

  1.   

    统一改成UTF-8就不会有问题的,包括java文件类型。。
      

  2.   

    谢谢了楼上的兄弟 我才发现我没一次把所有的字符编码弄成统一的,总是这里是是UTF-8  这里又改成 GBK!!分分都给你!
      

  3.   

    乱码问题一般按照下面几步就可以解决:
    1.检查页面的编码2.为web应用增加一个filter,这个filter主要是转码的工作,从iso-8859-1转到跟你的页面的编码一样。具体的代码可以上google搜索3.设置response的输出编码(如果要输出到页面的话)