• 2005-11-28

    JSP中文乱码解决之道

    Views: 18142 | 3 Comments

    对于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");

    我这样做,没问题。你不妨试一试。如果有问题,请留言。

    希望对你有帮助。

    Posted by ideawu at 2005-11-28 14:13:00
|<<<202122232425262728>>>| 28/28 Pages, 163 Results.