中文亂碼這個問題,在我們的開發過程中是個經常遇到的問題,而這一問題的答案和解決方案也遍布互聯網的各個角落。隨便搜一下中文亂碼,可以找到符合條件的記錄成千上萬。然而由于使用框架的不同,各人的開發環境的不同,中文亂碼的情況及原因也各不相同。
情況:有可能是在數據庫里顯示中文而頁面進行提交時就成了亂碼,有可能頁面能正常顯示中文而數據庫里卻不能正常顯示中文??傊闆r有很多種,數據庫里不能正常顯示中文有可能就是數據庫的問題,要么是建表時沒選擇好編碼要么是啟動參數等問題,而更常見的是在頁面提交的中文,在服務端就成亂碼的情況(本人昨天也遇到這情況),網上的很多解決方案,
首先配置web.xml的filter是必須的,而配置完畢后還是有中文問題的話,有的人說問題出在filter,用spring自帶的filter不行,自己寫了一個filter后解決;(本人是自己寫的filter);有人說tomcat4.x沒有這個問題,5.x就有編碼問題。在Tomcat的server.xml的Connector部分添加URIEncoding="GBK",server.xml添加后內容如下:
<Connector URIEncoding="GBK" port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
本人也試過,沒用,最后查找資料查到下面三條語句的含義:
1、<%@ page language="java" pageEncoding="gbk"%>
2、<%@ page contentType="text/html;charset=gbk"%>
3、<meta http-equiv="Content-Type" content="text/html; charset=gbk">
第一句編碼格式為jsp文件的存儲格式。
第二句web服務器在發送相應內容是使用解碼 格式。
第三句是告訴瀏覽器需要使用UTF-8的編碼來處理web服務器的相應內容。
雖然這三條語句可能對于解決沒有直接的作用,但是這個是亂碼產生原因的基礎所在。只要認真理解上面三條語句的含義,在頁面中統一編碼中文問題就有答案了。
---------------------------------------------------------------------------------------------------------------------------------
說人之短,乃護己之短??浼褐L,乃忌人之長。皆由存心不厚,識量太狹耳。能去此弊,可以進德,可以遠怨。
http://m.tkk7.com/szhswl
------------------------------------------------------------------------------------------------------ ----------------- ---------
posted on 2007-12-18 09:54
宋針還 閱讀(2545)
評論(0) 編輯 收藏 所屬分類:
常見問題