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資料庫中插入中文亂碼”,這篇文章問題排查思路很好:
查詢了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 <表名>