將瀏覽器中的編碼改成utf-8,數(shù)據(jù)庫(kù)中也是。在php頁(yè)面首行加上header("Content-type:
鎮(zhèn)海網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,鎮(zhèn)海網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為鎮(zhèn)海上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的鎮(zhèn)海做網(wǎng)站的公司定做!
text/html;
charset=utf-8");,必須首行,前面不能有輸出。
還有,在查詢數(shù)據(jù)庫(kù)時(shí)加上:mysql_query(set
names
utf-8);
一般來(lái)說(shuō),亂碼問(wèn)題其實(shí)也就是編碼不一致導(dǎo)致的。因此,要解決PHP中文亂碼問(wèn)題,解決步驟有如下幾步:
1. 頁(yè)面聲明的編碼 與 數(shù)據(jù)庫(kù)內(nèi)部編碼 一致
比如: 你的網(wǎng)頁(yè)里設(shè)置 charset = gb2312,然而,你的數(shù)據(jù)庫(kù)使用utf-8,那么,如果不進(jìn)行iconv轉(zhuǎn)換的話,顯示出來(lái)可能就有問(wèn)題。
2. 頁(yè)面文件的編碼 與 頁(yè)面聲明的編碼 一致
比如,你的網(wǎng)頁(yè)文件為 test.php,該文件用 UTF-8B 格式保存,而如果你的網(wǎng)頁(yè)里設(shè)置 charset = gb2312,那么可能顯示也不正常。
從你的問(wèn)題描述來(lái)看,“PHP中非數(shù)據(jù)庫(kù)導(dǎo)出的部分 其中文顯示正常 ”,據(jù)此可以確定頁(yè)面文件編碼與頁(yè)面聲明編碼一致,那么,問(wèn)題原因就在于:
頁(yè)面聲明的編碼 與 數(shù)據(jù)庫(kù)內(nèi)部編碼 不一致造成的。
你可以查看下,你的 數(shù)據(jù)庫(kù)編碼格式 與 網(wǎng)頁(yè)定義的編碼。
直接判斷唄,
if($a =="A"){
echo "甲";
}
這是最簡(jiǎn)單的方法了。
首先你的php網(wǎng)頁(yè)要是UTF-8
?php header("Content-Type:text/html;charset=UTF-8"); ?
數(shù)據(jù)庫(kù)配置公共文件如下:
$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); //北京時(shí)間
數(shù)據(jù)庫(kù)采用UTF8編碼,而頁(yè)面申明編碼是GB2312,這是最常見(jiàn)的產(chǎn)生亂碼的原因。這時(shí)候在PHP腳本里面直接SELECT數(shù)據(jù)出來(lái)的就是亂碼,需要在查詢前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");來(lái)設(shè)定MYSQL連接編碼,保證頁(yè)面申明編碼與這里設(shè)定的連接編碼一致(GBK是GB2312的擴(kuò)展)。如果頁(yè)面是UTF-8編碼的話,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如頁(yè)面申明的編碼與數(shù)據(jù)庫(kù)內(nèi)部編碼一致可以不設(shè)定連接編碼。
事實(shí)上MYSQL配置文件my.ini中定義了2個(gè)默認(rèn)編碼,分別是[client]里的default-character-set和[mysqld]里的default-character-set來(lái)分別設(shè)定默認(rèn)時(shí)候客戶端連接和數(shù)據(jù)庫(kù)內(nèi)部所采用的編碼。上面指定的編碼其實(shí)是MYSQL客戶端連接服務(wù)器時(shí)候的命令行參數(shù)character_set_client,來(lái)告訴MYSQL服務(wù)器接受到的客戶端數(shù)據(jù)是什么編碼的,而不是采用默認(rèn)編碼。
轉(zhuǎn)自: