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
沒有留言:
張貼留言