对于Linux+Tomcat+JSP+Mysql,我的Mysql是character set latin1(连接值)latin1(全局值),我没改my.ini(my.cnf),这些都是默认的。Tomcat也是默认的。对于Linux来说,我用zh_CN.UTF-8的locale,不过用gb2312或者gbk都可以。
注意了,你保存的源代码建议你保存为UTF-8编码格式(在Linux下的gedit,kedit在保存时有选项)。在Windows下,你试用Editplus或者UltraEdit试一下,应该也有这个选项。
连接数据库时,jdbc:mysql://localhost:3306/admin?useUnicode=true&characterEncoding=utf8或者把utf8换为gb2312也行,不过不要再改变了!
在JSP源码中,第一行写上:
<%@ page contentType="text/html; charset=UTF-8" %>(告诉Tomcat你的源代码是UTF-8编码保存的)
注意UTF-8的大小写,不确定的话查手册。如果你保存时编辑器选用gb2312,就把UTF-8改为gb2312。然后在与 </head>之间的第一行(其他行未试)写上
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">(告诉浏览器你的代码是UTF-8格式的)UTF-8与上面的对应,若上面为gb2312,这里也为gb2312,后面假设你用UTF-8;
在读取表单之前,写上一句:
request.setCharacterEncoding("UTF-8");(告诉JVM?/Tomcat?你要读取的信息的UTF-8格式的,与你的源代码存储格式一样。)
就可以这样读取表单了:
String member_name = request.getParameter("name");
我这样做,没问题。你不妨试一试。如果有问题,请留言。
希望对你有帮助。