在php代碼的第一行添加如下代碼就好了。
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計與策劃設(shè)計,無極網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:無極等地區(qū)。無極做網(wǎng)站價格咨詢:13518219792
header("Content-Type:?text/html;?charset=UTF-8");
這行代碼是告訴瀏覽器使用utf8顯示。
或者在網(wǎng)頁的head內(nèi)添加
meta?http-equiv="content-type"?content="text/html;charset=utf-8"?/
作用一樣
根據(jù)你的描述 你的php文件應(yīng)該不是utf8的,將php文件轉(zhuǎn)成utf8就可以了。
流行的關(guān)系數(shù)據(jù)庫系統(tǒng)都支持數(shù)據(jù)庫字符集編碼,也就是說在創(chuàng)建數(shù)據(jù)庫時可以指定它自己的字符集設(shè)置,數(shù)據(jù)庫的數(shù)據(jù)以指定的編碼形式存儲。當應(yīng)用程序訪問數(shù)據(jù)時,在入口和出口處都會有字符集編碼的轉(zhuǎn)換。對于中文數(shù)據(jù),數(shù)據(jù)庫字符編碼的設(shè)置應(yīng)當保證數(shù)據(jù)的完整性。GB2312、GBK、UTF-8 等都是可選的數(shù)據(jù)庫字符集編碼;當然我們也可以選擇 ISO8859-1 (8-bit),只是我們得在應(yīng)
用程序?qū)憯?shù)據(jù)之前先將 16Bit 的一個漢字或 Unicode 拆分成兩個 8-bit 的字符,讀數(shù)據(jù)之后也需要將兩個字節(jié)合并起來,同時還要判別其中的 SBCS 字符,因此我們并不推薦采用 ISO8859-1 作為數(shù)據(jù)庫字符集編碼。這樣不但沒有充分利用數(shù)據(jù)庫自身的字符集編碼支持,而且同時也增加了編程的復雜度。編程時,可以先用數(shù)據(jù)庫管理系統(tǒng)提供的管理功能檢查其中的中文數(shù)據(jù)是否正確。
PHP 程序在查詢數(shù)據(jù)庫之前,首先執(zhí)行 mysql_query("SET NAMES xxxx"); 其中 xxxx 是你網(wǎng)頁的編碼(charset=xxxx),如果網(wǎng)頁中 charset=utf8,則 xxxx=utf8,如果網(wǎng)頁中 charset=gb2312,則xxxx=gb2312,幾乎所有 WEB 程序,都有一段連接數(shù)據(jù)庫的公共代碼,放在一個文件里,在這文件里,加入 mysql_query("SET NAMES xxxx") 就可以了。
SET NAMES 顯示客戶端發(fā)送的 SQL 語句中使用什么字符集。因此,SET NAMES 'utf-8' 語句告訴服務(wù)器“將來從這個客戶端傳來的信息采用字符集 utf-8”。它還為服務(wù)器發(fā)送回客戶端的結(jié)果指定了字符集(例如,如果你使用一個 SELECT 語句,它表示列值使用了什么字符集)。
不知道這資料是不是你說的那些。呵呵~~~
編碼問題是解碼者決定的,數(shù)據(jù)本身并不指明編碼方式,而是讀數(shù)據(jù)的解碼者選擇自己的解碼方式
此處,php程序是數(shù)據(jù)本身,php解釋器是解碼者本身,
php解釋器對?php程序的編碼方式?并不應(yīng)人類對php程序的編碼方式理解不同而轉(zhuǎn)移
因此,理論上不存在獲取當前數(shù)據(jù)編碼方式的?接口,只要當時的編碼者(譬如人類)顯示指明編碼方式,
解碼者(譬如php解釋器)方可獲知
即使在解析以后再人類看來是一片亂碼,?PHP認為一切都是正確的.
當然從前端獲取來的字符例外
如果不清楚字符串的編碼格式的話,就可以將這段字符這樣檢查:
$encode?=?mb_detect_encoding($string,?array("ASCII",'UTF-8′,"GB2312′,"GBK",'BIG5′));?
echo?$encode;
這樣就能知道它是什么編碼的了。后續(xù)操作還可以為其轉(zhuǎn)碼:
if?($encode?==?“UTF-8″){
$string?=?iconv("UTF-8″,"GBK",$string);
}