用phpmyadmin建立的數據庫如果你不指定編碼他默認是latin1_swedish_ci 編碼,既瑞典語不區分大小寫,而我們中國做的網頁不是GBK就是GB2312編碼,這樣不出現亂碼才怪.
1,建立數據庫時指定編碼.
在此再嘮叨一下常用的編碼,免的新手又迷茫:
如果你做的是簡體中文網頁,那么你在建立數據庫時用GB2312編碼,gb2312_chinese_ci.
如果你做的是繁體中文網頁,那么你建立數據庫時要用gib5編碼, big5_chinese_ci
如果你做的網頁有簡體也有繁體中文,那么推薦你用GBK編碼,gbk_chinese_ci . GBK包含的字碼比GB2312要多,當然繁體也在其中.
如果你做的是多國語言網頁,那么推薦你用UTF-8編碼 . mysql中有二種utf8編碼可供選擇 : utf8_unicode_ci與utf8_general_ci 筆者一般用utf8_general_ci ,關于這二種編碼的區別,請參考本站的另一篇文章: Mysql中校對集utf8_unicode_ci與utf8_general_ci的區別
我們用UTF-8編碼為例建立數據庫如圖:
語法: 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);
一般情況下只要你做好了這二步,你的程序是不會出現亂碼的
二般情況:
二般情況一般出現的不多,多出現在做的程序語言比較多,比如有時做utf8的,有時做gb2312的,有時又要做big5的網頁,用IDE建立的.php文件編碼和程序要顯示的編碼不同而引起的.
比如,我上次做了個gb2312的簡體中文網頁,現在老板又有吩咐要做個gbi5網頁,但我的ide用的卻是gb2312的編碼
就拿我常用的IDE Dreamweaver來說吧
如果還搞不定,那么在網頁頭部加一行http頭信息
header("Content-Type:text/html;charset=utf-8");
注意:在發送header頭信息時header前面不可以有任何輸出,包括空格在內.
好了寫了這么多,快看看你的程序屬于哪個情況引起的亂碼吧.
php技術:二招解決php亂碼問題,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。