對於mysql資料庫的亂碼問題,有兩中情況:
1. mysql資料庫編碼問題(建庫時設定)。
2. 連線mysql資料庫的url編碼設定問題。
對於第乙個問題,目前個人發現只能通過重新建庫解決,建庫的時候,選擇utf-8字符集。我試過修改現有資料庫字符集為uft
-8,但是根本不起作用,插入的中文仍然亂碼(中文顯示成:???)。重建庫時選擇字符集為utf-8之後,中文正常顯示了。
對於第二個問題,是這樣的情況:我建庫時設定了資料庫預設字符集為utf-8,通過mysql workbench直接插入中文顯示完全正常。但是使用mybaits插入資料時,中文顯示成了"???"這樣的亂碼。但從資料庫獲取的中文不會亂碼。跟蹤資料庫操作,sql語句中的中文還是顯示正常的,但是插入到mysql資料庫後就亂碼了,於是判斷可能是資料庫連線的問題。後來在網上找了下資料,發現確實可以為mysql資料庫的連線字串設定編碼方式,如下:
jdbc:mysql:
新增了useunicode=true&characterencoding=utf8引數之後,插入中文就正常了。
新增的作用是:指定字元的編碼、解碼格式。
例如:假設mysql資料庫用的是gbk編碼(也可能是其它,例如ubuntu下就是latin1),而專案資料庫用的是utf-8編碼。這時候如果新增了
useunicode=true&characterencoding=utf-8 ,
那麼作用有如下兩個方面:
1. 存資料時:
資料庫在存放專案資料的時候會先用utf-8格式將資料解碼成位元組碼,然後再將解碼後的位元組碼重新使用gbk編碼存放到資料庫中。
2.取資料時:
在從資料庫中取資料的時候,資料庫會先將資料庫中的資料按gbk格式解碼成位元組碼,然後再將解碼後的位元組碼重新
按utf-8格式編碼資料,最後再將資料返回給客戶端。
MYSQL中文亂碼解決方案
mysql資料庫存在著編碼問題,主要體現在資料庫裡漢字會出現亂碼,web頁面漢字顯示不正常。歸結起來只有乙個原因 會出現編碼的地方存在編碼不一致。web開發中 mysql編碼主要會出現在五個地方 1.mysql安裝的預設編碼 latin1 在mysql.ini mysql安裝根目錄下 中設定。mys...
MySQL亂碼終極解決方案
從mysql 4.1開始引入的多語言支援確實很棒,而且一些特性已經超過了其他的資料庫系統。不過在測試過程中發現使用適用於mysql 4.1之前的php語句操作mysql資料庫會造成亂碼,即使是設定過了表字符集也是如此。mysql 4.1的字符集支援 character set support 有兩個...
Mysql亂碼終極解決方案
mysql亂碼終極解決方案 最近在linux自帶的mysql資料庫中執行了乙個sql檔案,在資料庫中查詢沒有任何問題,可以看到中文資料,但是在jsp頁面中顯示時卻出現了亂碼,在spring的配置資料庫的連線url中,指定了編碼 characterencoding utf 8 而且瀏覽器也是utf 8...