java web中的中文亂碼問題和解決方法

開發過程中可能會遇到頁面中的中文顯示爲亂碼無法正常查看,出現亂碼的原因很多,以下舉例並提供解決方法
一、HTML頁面設置的編碼與頁面文件格式的編碼不一致
檢查方法:1.查看文件的編碼格式 用記事本打開,然後文件–另存爲 在對話框最下面的編碼那一欄就有文件對應的編碼。
這裏寫圖片描述
2.查看HTML頁面charset是否與記事本中看到的編碼一致,不一致改爲一致
這裏寫圖片描述
此處,即HTML所用編碼爲UTF-8
二、JSP頁面設置的編碼與頁面文件格式的編碼不一致
檢查方法:1.查看文件的編碼格式,方法同上
2.查看JSP頁面第一行 pageEncoding=”UTF-8” 是否編碼與文件編碼一致,不一致改爲一致。
三、頁面中返回數據的中文亂碼
檢查方法:1.檢查項目中是否有編碼過濾器,沒有沒有編碼過濾器在web.xml文件中加入以下代碼

<!-- 編碼過濾器 -->
    <filter>
        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><!-- 
            設置編碼類 -->
        <init-param>
            <param-name>encoding</param-name>
            <!-- encoding設置request編號 -->
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

注意:這是spring項目中編碼過濾器,如果不是spring項目,則可以參考以下博客用過濾器filter設置編碼格式自行設置。如果還沒有解決問題請查看第四步

四、修改tomcat配置
過濾所有請求,但還是有問題,最後發現是表單的問題,在表單中method默認是get,而以上過濾器只對post有效果,如果是get,需要修改 Tomcat根式目錄的 conf/server.xml文件中,找,在裏面加uRIEncoding=”utf-8”
例:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
uRIEncoding="utf-8"/>

五、檢查數據庫中保存的數據是否亂碼
在數據庫中數據是否亂碼,如果是數據庫亂碼,則需要重新設置數據庫的數據庫的編碼 ,數據庫編碼設置可以查看此博客數據庫字符編碼的設置以及數據庫中文亂碼的解決方法

引用 一:http://blog.csdn.net/xinxin19881112/article/details/4518602
引用二:http://blog.csdn.net/u010663668/article/details/54881998

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章