1.JSP與頁面參數之間的亂碼
JSP獲取頁面參數時一般采用系統默認的編碼方式,如果頁面參數的編碼類型和系統默認的編碼類型不一致,很可能就會出現亂碼。解決這類亂碼問題的基本方法是在頁面獲取參數之前,強制指定
request獲取參數的編碼方式:request.setCharacterEncoding("GBK")或request.setCharacterEncoding("gb2312")。
servlet 如果在JSP將變量輸出到頁面時出現了亂碼,可以通過設置response.setContentType("text/html;charset=GBK")或response.setContentType("text/html;charset=gb2312")解決。
----------------------------------
2、數據庫亂碼
這種亂碼會使你插入數據庫的中文變成亂碼,或者讀出顯示時也是亂碼,解決方法如下:
在數據庫連接字符串中加入編碼字符集
String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
并在頁面中使用如下代碼:
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
3.中文作為參數傳遞亂碼
當我們把一段中文字符作為參數傳遞個另一頁面時,也會出現亂碼情況,解決方法如下:
在參數傳遞時對參數編碼,比如
RearshRes.jsp?keywords=" + java.net.URLEncoder.encode(keywords)
然后在接收參數頁面使用如下語句接收
keywords=new String(request.getParameter("keywords").getBytes("8859_1"));
4.JSP中文亂碼問題之四:Get方式表單傳遞和URI方式傳遞參數亂碼
解決方案
apache-tomcat-6.0.18\conf\server.xml
在這個內加入一行
< Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK" />
5.在b.jsp中把String name=request.getParameter("name");修改為
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
6.JSP中文亂碼問題更好的解決方法是使用過濾器技術
Encoding過濾器
package com.htt; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import
javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class Encoding implements Filter { public void
destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("GBK"); chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { } }
Web.xml文件中的設置
< filter> < filter-name>encoding< /filter-name> < filter-class>com.htt.Encoding< /filter-class> < /filter> < filter-mapping> < filter-name>encoding< /filter-name>
< url-pattern>/ToCh_zn< /url-pattern> < /filter-mapping>