1. 程式人生 > >使用mysql資料庫插入中文全部變成問號

使用mysql資料庫插入中文全部變成問號

下午使用MYSQL資料庫,插入中文時候全部變成為問號,找了一下午都沒有找到合適的答案,有點小傷心,一個小問題耗費這麼多時間

後面按照網上的方法改來改去,最後甚至連插入中文都報錯

遇到這樣的問題,首先先不要著急,肯定是編碼的問題,先檢查下我們所使用表的編碼方式,使用mysql命令:

show  create table 表名;


發現雖然表的預設方式編碼是GBK,但是列的編碼卻是latin1,中文的編碼應該為gbk或者是utf-8,所以問題出在列的編碼方式的不正確選擇,所以現在把列的編碼方式修改一下,使用mysql命令:

 ALTER TABLE `表名` CHANGE `列名` `列名` VARCHAR(45) CHARACTER SET

 UTF8 NOT NULL;

修改後問題解決。


下面是修改一些關於編碼方案的指令:

1.    show variables like '%char%'   檢視資料庫字符集


2.   SET NAMES ‘charset_name’;

   SET NAMES顯示客戶端傳送的SQL語句中使用什麼字符集。因此,SET NAMES 'cp1251'語句告訴伺服器將來從這個客戶端傳 來的資訊採用字符集cp1251”。它還為伺服器傳送回客戶端的結果指定了字符集。(例如,如果你使用一個SELECT語句,它表示列值使用了什麼字元 集。)

3.   從終端登入mysql使用命令  mysql -u root -p 資料庫名稱 

總結一下,如果遇見插入中文亂碼問題,先確定問題的產生肯定與編碼方式有關,先檢查資料庫的編碼方法,檢視下資料庫字符集,再檢視下表的編碼,最後檢查下表中列的編碼。檢查這三個地方的編碼,一般問題即可迎刃而解。