怎么解決mysql插入數據亂碼
怎么解決mysql插入數據亂碼
在mysql插入數據后顯示亂碼的解決方法:
使用語句 show variables like 'character%'; 來查看當前數據庫的相關編碼集:
可以看到 mysql 有六處使用了字符集,分別為:client 、connection、database、results、server 、system。
其中與服務器端相關:database、server、system(永遠無法修改,就是utf-8);
與客戶端相關:connection、client、results 。
保證每一項的編碼統一就不會產生亂碼,當然支持中文的話也可以改成gbk,gb2312,utf-8等,建議是utf-8。在mysql中默認字符集是latin1,他是不支持中文的
與客戶端相關:connection、client、results 。字符集可以通過set names utf8; 或者 set names gbk;進行修改數據庫的編碼集。
設置完成后即可解決客戶端插入數據或顯示數據的亂碼問題了。
上述方法只可以在當前窗口有效,若要設置一直有效可以使用下面的方法解決;
在 mysql 的安裝目錄下有一個 my.ini 配置文件(linux下是/etc/my.cnf),通過修改這個配置文件可以一勞永逸的解決亂碼問題。
在這個配置文件中 [mysql] 與客戶端配置相關,[mysqld] 與服務器配置相關。默認配置如下:
[mysql] default-character-set=utf8 [mysqld] character-set-server=utf8
相關文章
- SQL SELECT 語句
- SQL SELECT DISTINCT 語句
- SQL WHERE 子句
- SQL DELETE 語句
- SQL SELECT TOP, LIMIT, ROWNUM 子句
- SQL LIKE 操作符
- SQL JOIN 關鍵字
- SQL RIGHT JOIN 關鍵字
- SQL FULL OUTER JOIN 關鍵字
- SQL SELECT INTO 語句
- SQL CREATE DATABASE 語句
- SQL CREATE TABLE 語句
- SQL 約束(Constraints)
- SQL NOT NULL 約束
- SQL UNIQUE 約束
- SQL PRIMARY KEY 約束
- SQL FOREIGN KEY 約束
- SQL CHECK 約束
- SQL AUTO INCREMENT 字段
- SQL HAVING 子句