java 中文亂碼處理。
參考
http://china.eceel.com/article/study_for_character_encoding_java.htm
http://upurban.com/bbs/viewtopic.php?t=246
1。什么是utf-8,什么是ISO-8859-1,什么是GB2312,還有什么是unicode
2。java 程序的字符的表示格式
3。jsp 程序中文顯示處理實例
3。1
<%@ page pageEncoding="ISO-8859-1"%>和<%@ page pageEncoding="GB2312"%>和<%@ page
pageEncoding="UTF-8"%>各自的意思是什么,他們是否只對post提交有效!
request.setCharacterEncoding("UTF-8")是什么意思?有什么區別?還有
response.setCharacterEncoding("UTF-8"),優先于下邊
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
setCharacterEncoding()該函數用來設置http請求或者相應的編碼。
對于request,是指提交內容的編碼,指定后可以通過getParameter()則直接獲得正確的字符串,如果不
指定,則默認使用iso8859-1編碼,需要進一步處理。參見下述"表單輸入"。值得注意的是在執行
setCharacterEncoding()之前,不能執行任何getParameter()。java doc上說明:This method must be
called prior to reading request parameters or reading input using getReader()。而且,該指定
只對POST方法有效,對GET方法無效。分析原因,應該是在執行第一個getParameter()的時候,java將會
按照編碼分析所有的提交內容,而后續的getParameter()不再進行分析,所以setCharacterEncoding()無
效。而對于GET方法提交表單是,提交的內容在URL中,一開始就已經按照編碼分析所有的提交內容,
setCharacterEncoding()自然就無效。
對于response,則是指定輸出內容的編碼,同時,該設置會傳遞給瀏覽器,告訴瀏覽器輸出內容所采用的
編碼。
3.2. jsp輸出
指定文件輸出到browser是使用的編碼,該設置也應該置于文件的開頭。例如:<%@ page
contentType="text/html; charset= GBK" %>。該設置和response.setCharacterEncoding("GBK")等效。
4。java EE程序利用過濾器 處理中文問實例
提交數據的編碼格式
tomcat默認提交格式是ISO-8859-1
可以通過設置過濾器(只針對post提交)或修改server.xml 的URIencoding 編碼格式(只針對get提交)
達到你想要的 數據提交編碼格式。
總結
---by mylu 18:26 2007-5-20
posted on 2007-05-20 22:36
Super·shen BLOG 閱讀(1523)
評論(0) 編輯 收藏 所屬分類:
JAVA技術