jsp資料庫中文亂碼
❶ 為什麼我的JSP程序想資料庫存入漢字時會出現亂碼怎麼解決啊
jsp傳值到資料庫出現亂碼,一般有兩個原因:
一種是jsp將數據發送給資料庫時出現亂碼,
一種是資料庫拿到數據後進行存儲是發生亂碼,
出現第一種問題時要去看jsp標簽中是否是為utf-8,再者就要看項目編目是否為utf-8右鍵項目名到preference下可以更改項目編碼。
出現第二種問題時,代表資料庫編碼有問題。右鍵你用的資料庫--資料庫屬性可以更換成utf-8具體視圖如下顯示,
在編碼過程中要保證項目不出現亂碼情況就要在創建項目和資料庫時對其編碼進行上述規定
❷ 如何徹底解決jsp頁面中文亂碼及資料庫亂碼
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",添加數據頁面也要跟顯示數據頁面的編碼格式要保持一致,不然的話就會出現添加到資料庫中沒亂碼,從資料庫中顯示出現亂碼的情況