mysql插入表中的中文顯示為亂碼或問號的解決方法

2021-08-10 12:54:39 字數 2417 閱讀 2431

1.我的計算機配置: windows系統(linux沒試過)  mysql 5.6

mysql中文顯示亂碼或者問號是因為選用的編碼不對或者編碼不一致造成的,我是通過修改my.ini配置檔案。(配置檔案在安裝的根目錄下如下圖)

2.然後在my.ini如下修改

[mydqld]和[client]段加入

default-character-set=utf8  (有的版本不支援default-character-set=utf8,用character_set_server=utf8來取代 default-character-set=utf8即可)

如果沒有[client]就手工加入[client]段

在[client]節點下新增 (這個如果是另一種character_set_server=utf8 這樣寫我的會報錯1067【mysql服務無法啟動】,大家可以試試)  (這個是客戶端的編碼配置)

default-character-set=utf8 

在[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資料庫 

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插入表中的中文顯示為亂碼或問號的解決方法

1.我的計算機配置 windows系統 linux沒試過 mysql 5.6 mysql中文顯示亂碼或者問號是因為選用的編碼不對或者編碼不一致造成的,我是通過修改my.ini配置檔案。配置檔案在安裝的根目錄下如下圖 原來的為my default.ini 複製裡面的內容改為my.ini,也就是重新命名...

解決 MySql插入表 中文顯示為亂碼或者問號

問題 1.插入mysql資料庫中文字元時,中文顯示為?2.報incorrect string value的錯誤 原因 資料庫字元沒有統一設定成為utf 8 解決方法 1.檢視mysql資料庫字符集 show variables like char 顯示編碼格式,檢查是否更正為utf 82.修改mys...

sql server 插入的中文顯示為」 」

1 右鍵選擇你要更改的資料庫,選擇屬性 properties options 2 collation選擇chinese prc 90 ci as ps collation的選項不一定,可以選擇其他能用的哦 之後在要插入的中文資料前加上乙個n,比如 insert into user uid,usern...