mysql post 中文乱码_mysql/mariaDB中文乱码问题的处理
使用mysql/MariaDB數據庫插入中文,查詢發現亂碼?
mariaDB [lhc]> select * from python_test;
+----+-----------+------------+
| id | name? ? ? | class_time |
+----+-----------+------------+
|? 1 | ??? ? ? ? |? ? ? ? ? 3 |
|? 2 | ??? ? ? ? |? ? ? ? ? 2 |
|? 3 | ??? ? ? ? |? ? ? ? ? 5 |
|? 4 | ???? ? ? ?|? ? ? ? ? 2 |
|? 5 | ???? ? ? ?|? ? ? ? ? 2 |
+----+-----------+------------+
5 rows in set (0.00 sec)
原來是編碼設置有問題。查看下MariaDB的默認編碼格式
MariaDB [lhc]> show variables like "character_set_%" ;
+--------------------------+----------------------------+
| Variable_name? ? ? ? ? ? | Value? ? ? ? ? ? ? ? ? ? ? |
+--------------------------+----------------------------+
| character_set_client? ? ?| utf8? ? ? ? ? ? ? ? ? ? ? ?|
| character_set_connection | latin1? ? ? ? ? ? ? ? ? ? ?|
| character_set_database? ?| latin1? ? ? ? ? ? ? ? ? ? ?|
| character_set_filesystem | binary? ? ? ? ? ? ? ? ? ? ?|
| character_set_results? ? | utf8? ? ? ? ? ? ? ? ? ? ? ?|
| character_set_server? ? ?| latin1? ? ? ? ? ? ? ? ? ? ?|
| character_set_system? ? ?| utf8? ? ? ? ? ? ? ? ? ? ? ?|
| character_sets_dir? ? ? ?| /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
將數據庫以及表的編碼均按照如下修改,然后重新插入數據到表中,即可
/*修改數據庫編碼*/
MariaDB [lhc]> ALTER database python_test character set utf8;
/*修改表的編碼*/
MariaDB [lhc]> ALTER table python_test character set utf8;
再查詢,結果正常了。
不過通過java操作MYSQL數據庫,顯示在WEB頁面上,還是亂碼,這是怎么回事呢?
原來問題出在HttpServletResponse上。在返回結果之前,應當加一句:response.setCharacterEncoding("utf-8");
當然,在使用get或者post獲取傳來的參數,也需要使用request.setCharacterEncoding("UTF-8"),以免亂碼。
總結
以上是生活随笔為你收集整理的mysql post 中文乱码_mysql/mariaDB中文乱码问题的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu vscode 配置open
- 下一篇: mysql常用表名大全_MySQL常用命