解決Linux平臺上 php與mysql通訊產生中文亂碼問題

之前很多人在Ubuntu上做開發,會使用到mysql數據庫,可是mysql默認是不支持中文的,但是我們的開發產品是需要向數據庫寫入中文數據,這樣我們可以大大簡化我們的開發壓力.

在這個我使用的Ubuntu 14.04lts mysql5.5和php5.如何在ubuntu上部署php和mysql就在這裏不再累述.

我們直接切入正題

首先我們先看一下默認的情況


這個咋是蝌蚪文 讓我們來看看 
首先在 在終端中進入 root賬戶  sudo su  輸密碼
 然後輸
mysql -uroot -p 進入mysql的命令指示行

我們查一下字符集  輸入 show variables like 'character%';

好吧
數據庫的通訊和儲存的編碼被改成了 而不是utf8. 
latin1是沒有中文顯示的,所以就出錯了
回到終端  輸  
sudo gedit /etc/mysql/my.cnf   打開mysql的配置文件
在[mysqld] 下加這兩句話
character-set-server=utf8
init_connect='SET NAMES utf8'
並把下面一句話註釋  #collation-server=utf-8_general_ci

千萬別做死 按網上的教程 加 default-character-set=utf8 

之後重啓mysql服務  sudo /etc/init.d/mysql restart

我們在看看字符集  這裏我用了status命令來查看  


字符果然好了
  
可是到了php頁面中還是出現了亂碼
這是在php頁面中加這兒句話

header("content-type:text/html; charset=utf-8");
mysql_query("SET NAMES 'utf8' ");

 將頁面字符改成utf8 就好了
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章