小弟使用的是myeclipse开发工具开发JavaWeb项目,使用纯java驱动连接好了mysql数据库,数据库中有一张customer的表,保存着客户的用户名和密码,都是varchar类型的,问题的关键在于我使用用户名和密码查询结果时,中文的用户名就是返回不了结果,但是英文却可以,我查了下我的mysql编码格式,是utf8,我的网页编码格式也是utf8,最后我将我的java文件的文件编码格式都设置成了utf8了,可是中文还是查询不了,请哪位大虾帮忙啊

解决方案 »

  1.   

    你是用得GET传值吧??
    需要在tomcat下的server.xml设置编码:
    <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" URIEncoding="UTF-8"/>
    传值的时候需要进行两次编码:
    js编码:encodeURI(encodeURI("你传送的中文值"));
    java编码:URLEncoder.encode(URLEncoder.encode("你传送的中文值",UTF-8),"UTF-8");
    服务器端接受需要解码:
    URLDecoder.decode("传送的中文值","UTF-8");
      

  2.   

    编码的问题已经解决了,我参考了好多资料,终于找到比较符合的了,其实和上面的回复差不多的,但是通过看这个文档,了解了为什么要这样设置,大概了解了表单提交后是如何编码的,这里附上地址,希望有和我一样困惑的可以有个借鉴,少走弯路 http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/