PHP+MySQL出現中文亂碼的緣由。php
1. MYSQL數據庫的編碼是utf8,與PHP網頁的編碼格式不一致,就會形成MYSQL中的中文亂碼。html
2. 使用MYSQL中建立表、或者選擇字段時設置的類型不是utf8,而網頁編碼不是utf8,也可能形成MYSQL中文亂碼.mysql
3. PHP頁面的字符集與數據庫的編碼不一致。sql
4. PHP鏈接MYSQL數據庫,操做是設定的語句指定的編碼和頁面編碼,PHP頁面編碼不一致。數據庫
5. 用戶提交的HTML頁面編碼,和顯示數據的頁面編碼不一致 ,就確定會形成PHP頁面亂碼.ui
怎麼解決中文亂碼的問題。編碼
1. 網頁編碼設置。通常在HTML代碼中的文件頭<html>中加入屬性:3d
<meta http-equiv=」Content-Type」 content=」text/html; charset=utf-8″> htm
保證,網頁是"utf-8"編碼。blog
2. PHP代碼設置。在php代碼的開始部分加入如下代碼:
header(」Content-type: text/html;charset=utf-8″);
且要求保存的文件編碼方式是utf-8(能夠用EditPlus打開設置,以下圖),這樣就保證了該文件也是utf-8編碼。
3. 數據庫中表的字段中存儲中文的部分,要設置爲utf8_general_ci類型。
4.PHP在鏈接數據庫操做時,要設置操做的字段類型爲utf8,設置方法以下:
mysql_connect(’localhost’,'user’,'password’);mysql_select_db(’db’);mysql_query(」set names utf8;」); //**設置字符集***
實例對比。經過上面的分析,咱們按照解決方案,獲得了正確的中文編碼存儲在MySQL中,效果以下圖所示: