二招解決php亂碼問題
更新時間:2012年03月25日 20:42:01 作者:
PHP的亂碼問題已經(jīng)說了N+1遍了,但還是經(jīng)??吹叫率植恢涝撊绾谓鉀Qphp亂碼問題,在此本人再重新給總結(jié)一下,希望對新手有點(diǎn)幫助
php網(wǎng)頁出現(xiàn)亂碼一般是在建立數(shù)據(jù)庫時用的編碼和php網(wǎng)頁的編碼不同造成的,
用phpmyadmin建立的數(shù)據(jù)庫如果你不指定編碼他默認(rèn)是latin1_swedish_ci 編碼,既瑞典語不區(qū)分大小寫,而我們中國做的網(wǎng)頁不是GBK就是GB2312編碼,這樣不出現(xiàn)亂碼才怪.
1,建立數(shù)據(jù)庫時指定編碼.
在此再嘮叨一下常用的編碼,免的新手又迷茫:
如果你做的是簡體中文網(wǎng)頁,那么你在建立數(shù)據(jù)庫時用GB2312編碼,gb2312_chinese_ci.
如果你做的是繁體中文網(wǎng)頁,那么你建立數(shù)據(jù)庫時要用gib5編碼, big5_chinese_ci
如果你做的網(wǎng)頁有簡體也有繁體中文,那么推薦你用GBK編碼,gbk_chinese_ci . GBK包含的字碼比GB2312要多,當(dāng)然繁體也在其中.
如果你做的是多國語言網(wǎng)頁,那么推薦你用UTF-8編碼 . mysql中有二種utf8編碼可供選擇 : utf8_unicode_ci與utf8_general_ci 筆者一般用utf8_general_ci ,關(guān)于這二種編碼的區(qū)別,請參考本站的另一篇文章: Mysql中校對集utf8_unicode_ci與utf8_general_ci的區(qū)別
我們用UTF-8編碼為例建立數(shù)據(jù)庫如圖:
語法: mysql_query("SET NAMES 'utf8'");
例如:
$conn=mysql_connect('127.0.0.1','root','123456');
mysql_query("set names 'utf8'",$conn); //解決亂碼
mysql_select_db('test1',$conn);
一般情況下只要你做好了這二步,你的程序是不會出現(xiàn)亂碼的
二般情況:
二般情況一般出現(xiàn)的不多,多出現(xiàn)在做的程序語言比較多,比如有時做utf8的,有時做gb2312的,有時又要做big5的網(wǎng)頁,用IDE建立的.php文件編碼和程序要顯示的編碼不同而引起的.
比如,我上次做了個gb2312的簡體中文網(wǎng)頁,現(xiàn)在老板又有吩咐要做個gbi5網(wǎng)頁,但我的ide用的卻是gb2312的編碼
就拿我常用的IDE Dreamweaver來說吧
如果還搞不定,那么在網(wǎng)頁頭部加一行http頭信息
header("Content-Type:text/html;charset=utf-8");
注意:在發(fā)送header頭信息時header前面不可以有任何輸出,包括空格在內(nèi).
好了寫了這么多,快看看你的程序?qū)儆谀膫€情況引起的亂碼吧.
用phpmyadmin建立的數(shù)據(jù)庫如果你不指定編碼他默認(rèn)是latin1_swedish_ci 編碼,既瑞典語不區(qū)分大小寫,而我們中國做的網(wǎng)頁不是GBK就是GB2312編碼,這樣不出現(xiàn)亂碼才怪.
1,建立數(shù)據(jù)庫時指定編碼.
在此再嘮叨一下常用的編碼,免的新手又迷茫:
如果你做的是簡體中文網(wǎng)頁,那么你在建立數(shù)據(jù)庫時用GB2312編碼,gb2312_chinese_ci.
如果你做的是繁體中文網(wǎng)頁,那么你建立數(shù)據(jù)庫時要用gib5編碼, big5_chinese_ci
如果你做的網(wǎng)頁有簡體也有繁體中文,那么推薦你用GBK編碼,gbk_chinese_ci . GBK包含的字碼比GB2312要多,當(dāng)然繁體也在其中.
如果你做的是多國語言網(wǎng)頁,那么推薦你用UTF-8編碼 . mysql中有二種utf8編碼可供選擇 : utf8_unicode_ci與utf8_general_ci 筆者一般用utf8_general_ci ,關(guān)于這二種編碼的區(qū)別,請參考本站的另一篇文章: Mysql中校對集utf8_unicode_ci與utf8_general_ci的區(qū)別
我們用UTF-8編碼為例建立數(shù)據(jù)庫如圖:
語法: mysql_query("SET NAMES 'utf8'");
例如:
復(fù)制代碼 代碼如下:
$conn=mysql_connect('127.0.0.1','root','123456');
mysql_query("set names 'utf8'",$conn); //解決亂碼
mysql_select_db('test1',$conn);
一般情況下只要你做好了這二步,你的程序是不會出現(xiàn)亂碼的
二般情況:
二般情況一般出現(xiàn)的不多,多出現(xiàn)在做的程序語言比較多,比如有時做utf8的,有時做gb2312的,有時又要做big5的網(wǎng)頁,用IDE建立的.php文件編碼和程序要顯示的編碼不同而引起的.
比如,我上次做了個gb2312的簡體中文網(wǎng)頁,現(xiàn)在老板又有吩咐要做個gbi5網(wǎng)頁,但我的ide用的卻是gb2312的編碼
就拿我常用的IDE Dreamweaver來說吧
如果還搞不定,那么在網(wǎng)頁頭部加一行http頭信息
header("Content-Type:text/html;charset=utf-8");
注意:在發(fā)送header頭信息時header前面不可以有任何輸出,包括空格在內(nèi).
好了寫了這么多,快看看你的程序?qū)儆谀膫€情況引起的亂碼吧.
您可能感興趣的文章:
- 完美解決PHP中文亂碼
- PHP MYSQL亂碼問題,使用SET NAMES utf8校正
- php url地址欄傳中文亂碼解決方法集合
- PHP substr 截取字符串出現(xiàn)亂碼問題解決方法[utf8與gb2312]
- PHP亂碼問題,UTF-8亂碼常見問題小結(jié)
- php和mysql中uft-8中文編碼亂碼的幾種解決辦法
- 基于PHP導(dǎo)出Excel的小經(jīng)驗(yàn) 完美解決亂碼問題
- php讀取mysql中文數(shù)據(jù)出現(xiàn)亂碼的解決方法
- PHP頁面中文亂碼分析
- php上傳文件中文文件名亂碼的解決方法
- php file_get_contents抓取Gzip網(wǎng)頁亂碼的三種解決方法
- php截取中文字符串不亂碼的方法
- php導(dǎo)入csv文件碰到亂碼問題的解決方法
- phpmailer中文亂碼問題的解決方法
- PHP base64編碼后解碼亂碼的解決辦法
- php中json_encode UTF-8中文亂碼的更好解決方法
- php使用fgetcsv讀取csv文件出現(xiàn)亂碼的解決方法
- PHP采用get獲取url漢字出現(xiàn)亂碼的解決方法
- phpstorm編輯器亂碼問題解決
- php的GD庫imagettftext函數(shù)解決中文亂碼問題
- php上傳中文文件名亂碼問題處理方案
- PHP中文亂碼解決方案
- php讀取der格式證書亂碼解決方法
- PHP+MYSQL中文亂碼問題
- PHP頁面轉(zhuǎn)UTF-8中文編碼亂碼的解決辦法
相關(guān)文章
PHP 全角轉(zhuǎn)半角實(shí)現(xiàn)代碼
將一個字串中含有全角的數(shù)字字符、字母、空格或'%+-()'字符轉(zhuǎn)換為相應(yīng)半角字符2010-05-05php統(tǒng)計(jì)文件大小,以GB、MB、KB、B輸出
學(xué)習(xí)了fread讀取命令,用到了filesize函數(shù),知道這個函數(shù)定大有用到的時候,遂用之編寫統(tǒng)計(jì)文件大小函數(shù)2011-05-05php實(shí)現(xiàn)singleton()單例模式實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)singleton()單例模式的方法,以實(shí)例形式簡單講述了單例模式的實(shí)現(xiàn)過程,需要的朋友可以參考下2014-11-11PHP簡單驗(yàn)證碼功能機(jī)制實(shí)例詳解
這篇文章主要介紹了PHP簡單驗(yàn)證碼功能機(jī)制,結(jié)合實(shí)例形式深入淺出的分析了php驗(yàn)證碼的原理、實(shí)現(xiàn)步驟及相關(guān)操作技巧,需要的朋友可以參考下2019-03-03php中實(shí)現(xiàn)可以返回多個值的函數(shù)實(shí)例
這篇文章主要介紹了php中實(shí)現(xiàn)可以返回多個值的函數(shù),實(shí)例分析了php使用數(shù)組返回多個值的技巧,需要的朋友可以參考下2015-03-03PHP實(shí)現(xiàn)二維數(shù)組按指定的鍵名排序的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)二維數(shù)組按指定的鍵名排序的方法,這里以數(shù)組記錄三個人信息中的年齡age字段值進(jìn)行排序?yàn)槔?分析了php二維數(shù)組排序的操作技巧,需要的朋友可以參考下2017-08-08php下用cookie統(tǒng)計(jì)用戶訪問網(wǎng)頁次數(shù)的代碼
利用cookie統(tǒng)計(jì)用戶訪問網(wǎng)頁次數(shù)的代碼,需要的朋友可以參考下。作為學(xué)習(xí)cookies的資料,不推薦使用。2010-05-05