如何徹底解決jsp頁面中文亂碼及數據庫亂碼


最近自己閑做一個小項目,搭建環境框架SSH+MySQL數據庫,遇到一個問題:jsp頁面中文顯示亂碼,數據庫插入數據和更新數據時中文也顯示亂碼,后來在網上找了許多解決方法,還是折騰了兩天才把問題解決,下面總結一下徹底解決中文亂碼問題:

在項目里的我統一使用UTF-8的編碼方式

1、知道自己安裝Mysql數據庫安裝配置時選擇了什么編碼方式,如果之前安裝,現在不太清楚,建議重新安裝Mysql數據庫,安裝配置時選擇utf8

(這里有個小技巧:不用卸載Mysql數據,找到安裝Mysql數據庫目錄:D:\MySQL Server 5.1\bin下的MySQLInstanceConfig.exe,雙擊運行可以進行重新配置安裝,並選擇utf8編碼方式),如圖

2、安裝成功后,查看編碼方式,sql命令如下:

show variables like 'character%';

這里的所有編碼方式都要統一為utf8,若某一個不是utf8的編碼方式,就要設置為utf8,sql命令如下:set character_set_results=utf8

3、創建數據庫並指定數據庫的編碼方式,sql命令如下:

create database yourDB character set utf8;

4、創建數據庫表,也要指定其編碼方式

5、如果你的Mysql版本是5.0以下,則還需要在hibernate.cfg.xml配置里面url指定數據庫訪問連接時的編碼方式:

如:url=jdbc:mysql://localhost/db?user=user&password=123456&useUnicode=true&characterEncoding=UTF8

如果Mysql版本是5.0以上,這里的url加不加?user=user&password=123456&useUnicode=true&characterEncoding=UTF8 都沒關系

6、寫一個字符編碼的過濾器,編碼方式也要保證跟mysql的字符集一致為UTF-8

注意:在web.xml配置該過濾器時,必須把該過濾器的<filter-mapping>放在struts的映射前面,不然起不到過慮作用

7、所有jsp頁面指定編碼格式,保證跟mysql的字符集一致為UTF-8

注意:頁面里面大小寫統一,如<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>,不能是pageEncoding="UTF-8",contentType="text/html; charset=utf-8",添加數據頁面也要跟顯示數據頁面的編碼格式要保持一致,不然的話就會出現添加到數據庫中沒亂碼,從數據庫中顯示出現亂碼的情況


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM