1. 程式人生 > >mysql資料庫中文亂碼的問題

mysql資料庫中文亂碼的問題

在idea上面新建了一個web登入專案,瀏覽器提交表單,username“李華”存入資料庫是亂碼,只好一步步解決

1.在idea中輸出請求引數username就是亂碼,也就是“form表單提交中文的亂碼問題

解決方法:在idea中設定request編碼格式和客戶端網頁一致(以UTF-8為例),

request.setCharacterEncoding("UTF-8");

參見:https://www.cnblogs.com/yyz666/p/4051294.html

2.解決之後,發現存入資料庫還是亂碼,即“用JDBC在mysql資料庫中插入中文亂碼”,這篇文章問題排查思路很好:

https://blog.csdn.net/huangxia73/article/details/11772783

查詢了character_set_XXX變數,發現character_set_database(預設資料庫的編碼格式)和character_set_server是latin1,

百度了一下,可以在 /etc/my.cnf 中全域性設定,我添加了以下[client]和[mysqld]

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

修改好之後,重啟啟動mysql。

完美解決。

ps:sudo修改之後,my.cnf許可權 chmod 644 my.cnf,不然mysql.cnf任何人都可以讀寫的華,重啟mysql的時候,mysql會忽略這個配置

mysql: [Warning] World-writable config file '/etc/my.cnf' is ignored.

 

character_set_XXX的含義

https://blog.csdn.net/sun8112133/article/details/79921734

命令學習:

檢視資料庫編碼格式:mysql> show variables 

like 'character%';

檢視建立資料表的編碼格式:show create table <表名>