要解決亂碼首先需要知道出現(xiàn)亂碼的原因:
成都創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務石龍,10年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108
一、PHP+MySQL出現(xiàn)中文亂碼的原因。
1. MYSQL數(shù)據(jù)庫的編碼是utf8,與PHP網(wǎng)頁的編碼格式不一致,就會造成MYSQL中的中文亂碼。
2. 使用MYSQL中創(chuàng)建表、或者選擇字段時設置的類型不是utf8,而網(wǎng)頁編碼不是utf8,也可能造成MYSQL中文亂碼.
3. PHP頁面的字符集與數(shù)據(jù)庫的編碼不一致。
4. PHP連接MYSQL數(shù)據(jù)庫,操作是設定的語句指定的編碼和頁面編碼,PHP頁面編碼不一致。
5. 用戶提交的HTML頁面編碼,和顯示數(shù)據(jù)的頁面編碼不一致 ,就肯定會造成PHP頁面亂碼.
二、解決中文亂碼:
1. 網(wǎng)頁編碼設置。一般在HTML代碼中的文件頭html中加入屬性:
meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″
保證,網(wǎng)頁是"utf-8"編碼。
2. PHP代碼設置。在php代碼的開始部分加入以下代碼:
header(”Content-type: text/html;charset=utf-8″);
且要求保存的文件編碼方式是utf-8,這樣就保證了該文件也是utf-8編碼。
3. 數(shù)據(jù)庫中表的字段中存儲中文的部分,要設置為utf8_general_ci類型。
4.PHP在連接數(shù)據(jù)庫操作時,要設置操作的字段類型為utf8,設置方法如下:
mysql_connect(’localhost’,'user’,'password’);mysql_select_db(’db’);mysql_query(”set names utf8;”); //**設置字符集***
if ($db-server_info()'5.0.1')
{
$db-query("set names gbk2312");或者是GBK
}
把IF去掉
補充:
輸出之后,你試試IE切換編碼,看哪種編碼能顯示中文,你再把數(shù)據(jù)庫編碼以及頁面編碼調整統(tǒng)一。
首先你的php網(wǎng)頁要是UTF-8
?php header("Content-Type:text/html;charset=UTF-8"); ?
數(shù)據(jù)庫配置公共文件如下:
$host="localhost";
$db_user="root";
$db_pass="root";
$db_name="DB";
$timezone="Asia/Shanghai";
$link=mysql_connect($host,$db_user,$db_pass);
mysql_select_db($db_name,$link);
mysql_query("SET names UTF8");
header("Content-Type: text/html; charset=utf-8");
date_default_timezone_set($timezone); //北京時間