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

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。mysql

  今天在作ssh的博客項目時發現mysql數據庫中的中文顯示爲問號,網上查閱了不少資料,都不是很全,因此我總結一下,供你們參考和本身複習。linux

  1.個人計算機配置: windows系統(linux沒試過)  mysql 5.6sql

    mysql中文顯示亂碼或者問號是由於選用的編碼不對或者編碼不一致形成的,我是經過修改my.ini配置文件。(配置文件在安裝的根目錄下以下圖)數據庫

   原來的爲my-default.ini (複製裏面的內容改成my.ini,也就是從新命名)windows

  2.而後在my.ini以下修改服務器

  [mydqld]和[client]段加入ssh

     default-character-set=utf8  (有的版本不支持default-character-set=utf8,用character_set_server=utf8來取代 default-character-set=utf8便可)編碼

     若是沒有[client]就手工加入[client]段spa

     【1】在[client]節點下添加 (這個若是是另外一種character_set_server=utf8 這樣寫個人會報錯1067【mysql服務沒法啓動】,你們能夠試試)  (這個是客戶端的編碼配置)
       default-character-set=utf8 
     【2】在[mysqld]節點下添加 (這個是服務器端編碼的配置)(注:collation是排序方式)
       character-set-server=utf8 
      collation-server=utf8_general_ci .net

  修改後以下圖所示:

     

 

  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

相關文章
相關標籤/搜索