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編碼可供選擇 : utf與utf8_genera程式設計客棧l_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 dreamwe**er來說吧
id程式設計客棧e新建的網頁是gb2312,而我卻把建好的網頁改成big5的了,這樣怎麼會不出現亂碼呢,解決的方法很簡單,重新另存為一下,指定一下編碼就ok了,
如果www.cppcns.com還搞不定,那麼在網頁頭部加一行http頭資訊
header("content-type:text/html;charset=utf-8");
注意:在傳送header頭資訊時header前面不可以有任何輸出,包括空格在內.
好了寫了這麼多,快看看你的程式屬於哪個情況引起的亂碼吧.
本文標題: 二招解決php亂碼問題
本文位址:
解決php中文亂碼問題
最近在學習php的時候遇到中文亂碼問題。解決方法很簡單 1.首先我們要保持介面的編碼一致 以utf 8為準 靜態html中 在php 塊中 設定 意在告訴瀏覽器以utf 8的編碼方式讀取。2.資料庫的編碼在建立資料庫的時候請設定為utf 8,因為這樣會更通用。3.每次在連線資料庫的時候在執行 con...
PHP解決中文亂碼問題
初學php,在漢字頁面間傳輸和轉換的時候,遇到了中文亂碼問題。究其原因亂碼無外乎以下幾種情況 1 html頁本身的亂碼問題,解決方法 純html頁使用 2 php頁面本身存在亂碼,解決方法 header content type text html charset utf 8 3 在html頁和ph...
php解決中文擷取亂碼問題
針對擷取字串出現中文亂碼問題,網上有很多介紹,也有很多函式,但筆者看著網上的函式,總感覺有點彆扭,所以自己動手寫了乙個防止擷取字串時出現中文亂碼的函式。實現的原理還是比較簡單,主要是利用ascii編碼和中文編碼的二進位制範圍不一致而把它們區分開來,然後,通過substr 擷取字串的函式實現的。下面給...