您好,登錄后才能下訂單哦!
下文內容主要給大家帶來java寫入mysql數據庫出現亂碼怎么處理,所講到的知識,與書籍略有不同,都是億速云專業技術人員在與用戶接觸過程中,總結出來的,具有一定的經驗分享價值,希望給廣大讀者帶來幫助。
確保數據庫數據表創建的編碼一致:
創建數據庫的時候:
CREATE DATABASE `Db`
CHARACTER SET 'utf8 '
COLLATE 'utf8_general_ci';
注:CHARACTER SET 'utf8 ':這是設置字符編碼;
COLLATE 'utf8_general_ci':設置字符排序編碼
可以通過命令行設置:alter table tableA character set utf8
建表的時候:
CREATE TABLE `TableA` ( `ID` varchar(40) NOT NULL default ' ',
`UserID` varchar(40) NOT NULL default ' ', ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
注:設置表的字符編碼 DEFAULT CHARSET=utf8
可以通過命令行設置:alter table tableA charset utf
設置URL的時候:
jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8
注:這里useUnicode=true&characterEncoding=UTF-8這里可以不用添加,默認useUnicode為true
characterEncoding會自動檢測當前用的數據庫變而進行改變
2.上面的這些設置了可能會用錯誤,這需要修改mysql中my.ini配置文件
設置MySQL的默認字符集為utf8,找到客戶端配置[client]在下面添加。
default-character-set=utf8
找到云服務器配置[mysqld]在下面添加
default-character-set=utf8
設定MySQL數據庫以utf8編碼運行,連接MySQL數據庫時使用utf8編碼
停止和重新啟動MySQL
net stop mysql
net start mysql
注:找到服務器配置[mysqld]在下面添加:default-character-set=utf8這里加入會導致數據庫無法啟動
單獨加入default-character-set=utf8即可
重新連接數據庫,查看編碼,數據表內容
mysql> show variables like 'character%';
--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | d:\wamp\bin\mysql\mysql5.5.20\share\charsets\
從上面可以看到,除了| character_set_database | latin1 和character_set_server | latin1 兩項為latin1編碼其他都為utf8編碼,這里導致client和server的編碼不一致了,插入數據依然中文會亂碼
解決方法:
[mysqld]在下面添加:character_set_server=utf8,然后從新啟動
[mysqld]
port=3306
character_set_server=utf8
#default-character-set=utf8
使用如下命令
mysql> show variables like 'character%';
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | d:\wamp\bin\mysql\mysql5.5.20\share\charsets\ |
+--------------------------+-----------------------------------------------
這里可以看到所有的編碼都一致了,就不會亂碼了
|
| f512ebc1-e587-4baf-bd17-42e27236621f | ??? | female | 2017-02-24 | 119 | jzz@itheima.com | ??,??,?java | VIP | ?? |
之前出入的中文亂。下面為修改之后的結果
| ff1355cb-b25c-4431-8f96-7f56875b582f | 劉備 | female | 2017-02-24 | 119 | jzz@itheima.com | 吃飯,睡覺,學java | VIP | 美女 |
在命令提示中默認為gbk編碼,要想不亂碼顯示,在使用查詢語句時使用set names gbk
對于以上關于java寫入mysql數據庫出現亂碼怎么處理,如果大家還有更多需要了解的可以持續關注我們億速云的行業推新,如需獲取專業解答,可在官網聯系售前售后的,希望該文章可給大家帶來一定的知識更新。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。