二招解決php亂碼問題

來源:互聯網
上載者:User

php網頁出現亂碼一般是在建立資料庫時用的編碼和php網頁的編碼不同造成的,

用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編碼為例建立資料庫:

2,用php串連資料庫時用mysq_query 設定一下編碼
文法: 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來說吧

ide建立的網頁是gb2312,而我卻把建好的網頁改成big5的了,這樣怎麼會不出現亂碼呢,解決的方法很簡單,重新另存新檔一下,指定一下編碼就OK了,

如果還搞不定,那麼在網頁頭部加一行http頭資訊

header("Content-Type:text/html;charset=utf-8");

注意:在發送header頭資訊時header前面不可以有任何輸出,包括空格在內.

好了寫了這麼多,快看看你的程式屬於哪個情況引起的亂碼吧.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.