1樓:三日月年
mysql中預設字符集的設定有四級:伺服器級,資料庫級,表級 。最終是欄位級 的字符集設定。
注意前三種均為預設設定,並不**你的欄位最終會使用這個字符集設定。所以我們建議要用show create table table ; 或show full fields from tablename; 來檢查當前表中欄位的字符集設定。
mysql中關於連線環境的字符集設定有 client端,connection, results 通過這些引數,mysql就知道你的客戶端工具用的是什麼字符集,結果集應該是什麼字符集。這樣mysql就會做必要的翻譯,一旦這些引數有誤,自然會導致字串在轉輸過程中的轉換錯誤。基本上99%的亂碼由些造成。
上面是我抄網上的資料來的。我試了一下。發現
mysql> show variables like 'char%';
| variable_name | value |
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
8 rows in set (0.00 sec)
解決方法已經找到。進入資料後
use 資料庫名;
names utf8;
不過這樣會每次進入都必須重新設定。因此。還可以在/etc/mysql/my.conf裡新增
[mysql]
#no-auto-rehash # faster start of mysql but no tab ***pletition
default-character-set=utf8
這樣資料庫就不每次按照utf8字符集來匯入到資料庫了
2樓:匿名使用者
看看你資料庫的編碼是什麼。。。
如果不一致修改一下資料庫的編碼。。
為了防止亂碼,前臺、後臺、資料庫的編碼最好一致
servlet向資料庫插入中文資料亂碼
web工程裡面新增過濾器,以utf 8的編碼方式過濾所有請求。至於新增過濾器的方法 你可以去網上搜尋下,很多的,也很詳細 是不是mysql,mysql的資料編碼可能是gbk 如何解決在servlet向資料庫寫記錄時中文亂碼?1.在你的jsp頁面開始的位置確保寫入 page contenttype t...
java連線mysql資料庫如何獲取所有的資料庫名
select schema name from information schema.schemata 這樣就能取到所有的資料庫名 pstm conn.preparestatement sql resultset rs pstm.executequery arr new arraylist whil...
插入mysql資料庫,sql語句沒錯,每個欄位都有值,但到插入到資料庫後值為空。為什麼
第一,在你的程式內sql語句執行之前,把變數輸出到控制檯看看是否正確接收。第二,如果正確接收變數,把sql在dos介面執行下,到表裡看看在不在。輸出完整sql語句檢查是否正確。請問解決了嗎 我也是同樣的問題 能不能具體點,這樣子很難找到正確原由 資料庫欄位設定了預設值,插入資料時,該欄位值為空,會覆...