標簽: javajsp中文亂碼it | 分類: java開發(fā) |
1,jsp頁面中文亂碼
解決辦法:文件頭部定義指定頁面顯示編碼
<%@page language="java" import="java.util.*" contentType="text/html;charset=GB2312" %>
2,URL傳遞參數(shù)中文亂碼
解決方法:修改Tomcat服務(wù)器的配置文件
Tomcat的conf目錄下的server.xml配置文件,具體改后的代碼如下
[html]
<Connector port="8080" protocol="HTTP/1.1"URIEncoding="gb2312"
3,提交表單的中文亂碼
解決方法:Tomcat中對于post方法提交的表單采用的默認編碼為ISO-8859-1,而這種編碼格式不支持中文字符。對于這個問題可以采用轉(zhuǎn)換編碼格式的方法來解決
String
out.println("中文參數(shù):" + new String(param.getBytes("ISO-8859-1"),"gb2312");
4,采用PrintWriter方式輸出中文亂碼
解決方法:PrintWriter自身并沒有處理編碼的職責(zé),它還是應(yīng)該看成一個裝飾器比較好:它就是為了輸出更方便而設(shè)計的,提供print、println、printf等便利方法。
在servlet中輸出中文,如果采用PrintWriter方式,需要在調(diào)用getPrintWriter()之前調(diào)用setContentType或者 setCharacterEncoding
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
5,ajax中文亂碼
解決方法:ajax的中文問題已全部解決,從最初的jsp頁面看過來,中文就是一個編碼方式的問題,出現(xiàn)亂碼的原因大部分是在錯誤的時間,錯誤的地點進行了編碼的操作,且編碼的類型一會兒GBK,一會兒GB2312,一會兒UTF-8,當然數(shù)據(jù)會亂掉了。
將前幾種定義的編碼方式統(tǒng)一即可