數(shù)據(jù)庫采用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產(chǎn)生亂碼的原因。這時候在PHP腳本里面直接SELECT數(shù)據(jù)出來的就是亂碼,需要在查詢前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與數(shù)據(jù)庫虧物內(nèi)部編碼一致可以不設定連接編碼。
從網(wǎng)站建設到定制行業(yè)解決方案,為提供網(wǎng)站制作、網(wǎng)站設計服務體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設解決方案,助力業(yè)務快速發(fā)展。創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務。
事實上MYSQL配置文件my.ini中定義了2個默認編碼,分別是[client]里的default-character-set和[mysqld]里的default-character-set來分別設定默認時候客戶端連接和數(shù)據(jù)庫內(nèi)部所采用的編碼。上面猛改指定的編碼其實是MYSQL客戶端連接服務器時候的命令行參數(shù)character_set_client,來告訴MYSQL服務器接受到的銷知液客戶端數(shù)據(jù)是什么編碼的,而不是采用默認編碼。
轉(zhuǎn)自:
php數(shù)據(jù)庫中文亂碼的解決辦法:1、創(chuàng)建數(shù)據(jù)庫時,規(guī)定字符類型為uft8;2、創(chuàng)建緩慎表時,規(guī)定字符類型為utf8;3、在PHP的MySQL連接函數(shù)中,巧慎添加語句“孝哪敬mysql_query("set names 'utf8'")。
1、在test.php文件內(nèi),使用header設置test.php執(zhí)行的搜猜伏編碼為utf8,避免輸出中文的時候出現(xiàn)亂碼。
2、在test.php文件內(nèi),創(chuàng)建一個測試的數(shù)組,例如,定兆芹義一個分類的數(shù)組,其對應的索引值分別為0,4,8。
3、在test.php文件內(nèi),使用array_values()方法將上一步的數(shù)據(jù)重新排序,并且從0開始,把重新排序的數(shù)組保存在$result變量中。
4、在test.php文件內(nèi),使用foreach方法遍歷數(shù)組,其中$k為索引值,$v為索引值對應的數(shù)組值。
5、在test.php文件內(nèi),使用echo方法世攜輸出數(shù)組中的索引值和對應的數(shù)組值即可。