mysql插入表中的中文顯示為亂碼或問號的解決方法(轉載)
1.我的計算機配置: windows系統(linux沒試過) mysql 5.6
mysql中文顯示亂碼或者問號是因為選用的編碼不對或者編碼不一致造成的,我是通過修改my.ini配置檔案。(配置檔案在安裝的根目錄下)
原來的為my-default.ini (複製裡面的內容改為my.ini,也就是重新命名)
2.然後在my.ini如下2步修改
[mydqld]和[client]段加入default-character-set=utf8 (有的版本不支援default-character-set=utf8,用character_set_server=utf8來取代 default-character-set=utf8即可)
如果沒有[client]就手工加入[client]段
【1】在[client]節點下新增 (這個如果是另一種character_set_server=utf8 這樣寫我的會報錯1067【mysql服務無法啟動】,大家可以試試) (這個是客戶端的編碼配置) default-character-set=utf8 【2】在[mysqld]節點下新增 (這個是伺服器端編碼的配置)(注:collation是排序方式) character-set-server=utf8 collation-server=utf8_general_ci
修改後如下圖所示:
3.然後重啟mysql即可
1)計算機---->右鍵--->管理---->服務和應用程式--->服務--->找到mysql即可
2)我比較喜歡用命令列
以管理員身份執行cmd.exe,進行如下操作。
關閉服務 net stop mysql
開啟服務 net start mysql
END: 然後就可以來檢視是否變了編碼格式。還是在cmd中
1)輸入 mysql -u root -p 進入mysql資料庫
2)鍵入密碼:*****(自己的密碼,沒有的話直接回車鍵,嗯其他情況如忘了root密碼百度去orz。。)
3)show variables like 'char%'; 顯示編碼格式
下圖一為未修改my.ini配置檔案的編碼檔案latin1(即ISO-8859-1),圖二為已經修改過的。
圖一(未修改)
圖二(已修改編碼)
可以看出都已經更正為utf8了,這樣新建立的資料庫預設就是UTF8編碼了
彩蛋:
然後你以為到這就完了麼,並沒有。。
接下來你會發現報這個錯如下所示。
上述錯誤是什麼引起的呢,還是因為編碼不正確啊!因為使用了已經建立好的資料庫和表但沒有更改為utf-8;
通過以下命令查看錶的編碼為Latin1:
show create table tablename(資料庫名.表名);
修改方法:
ALTER DATABASE `資料庫` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ALTER TABLE `資料表` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci (注:此句把表預設的字符集和所有字元列(CHAR,VARCHAR,TEXT)改為新的字符集:)
資料庫編碼的修改和查詢
總結:也就是要更改資料庫的預設字符集為utf8,更改表的字符集為utf8,更改列的字符集為utf8,然後重新啟動MYSQL服務;
最後大功告成!
附MySql表、欄位、庫的字符集修改及檢視方法的連結:http://www.jb51.net/article/68856.htm