1、JSP页面显示的中文问题 Page的第一行改成:<%@ page contentType="text/html; charset=UTF-8" %> Head里加:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 2、页面Form 内容提交的中文问题 1)只要把%TOMCAT安装目录%/ webapps\jsp-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录下的filters下,如果没有filters目录,就创建一个。 2)在你的web.xml的</web-app>之前加入: <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 或者你不习惯用这个,可以在每个jsp页面里使用request.setCharacterEncoding("UTF-8");我个人感觉是一样的 3、get方式的解决办法 1) 打开tomcat的server.xml文件,找到区块,加入如下一行:URIEncoding="UTF-8" 完整的应如下: <Connector port="8090" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/> 2)重启tomcat,一切OK。 当然还有最土的解决方案,虽然不太会用到,不过还是列出来,以备最无奈的时候使用: String encodeStr=new String(fieldValue.getBytes("8859_1"), "UTF-8"); 执行如下test.jsp页面,测试是否成功 <%@ page contentType="text/html;charset=UTF-8"%> <%@ page import="java.util.*"%> <META http-equiv=Content-Type content="text/html;charset=UTF-8"> <% String q=request.getParameter("q"); q = q == null?"没有值":q; %> <HTML> <HEAD> <TITLE>新闻列表显示</TITLE> <body>你提交了:<%=q%><br> <form action="test.jsp" method="post"> 输入中文:<input type="text" name="q"><input type="submit" value="确定"> <br> <a href="test.jsp?q=中国">通过get方式提交</a> </form> </BODY> </HTML> 4、mysql的中文问题 首先要修改mysql配置文件的encoding为UTF-8,然后把jdbc connection改成如下: jdbc:mysql://localhost:3306/bookuseUnicode=true;characterEncoding=UTF-8 备注:本文参考了网上的部分资料,谢谢大家的共享精神。 还有什么例外的情况,请大家积极补充 |
|