怎樣解決PHP中文亂碼問題

2021-08-24 21:43:10 字數 1218 閱讀 2173

最近在csdn剛開了這個部落格,沒什麼時間把以前寫的文章搬過來,只能有空慢慢來了。

--------------------------這篇文章僅獻給那些一直在php亂碼問題上困惑的人。

a.首先說下html中文亂碼問題的解決方法。

比如有個index.html的頁面(這裡是指真正的靜態頁面,修改伺服器的……偽靜態的請看方案b)

1.在head標籤裡面加入這句

2.將檔案的編碼存為utf-8.記事本或editplus等編輯器都有儲存時選擇編碼的功能。

b.html和php混合的頁面解決方案。

除了a方案說的那些之外。還要在檔案的最上面加上下面這句**。

<?php header("content-type:text/html;charset=utf-8"); ?>

注意header前面不要有任何的輸出(echo/print/print_r/var_dump等php的輸出語句,或者是你在「<?php」前面回車/空格)。否則會報錯。

如果你用系統自帶的notepad儲存為utf-8編碼的檔案時會報錯。

為什麼呢?明明header已經寫在最前面了。

不要著急,因為你看到的並不是真實的。實際上你的「<?php」標籤前面已經存在了3個可惡的『東東』,但普通編輯器看不到。如果你用ultraedit開啟並切換到16進製制模式可以看到前面多了「ef bb bf」。這是跟windows識別編碼的方式有關。但我們的apache卻不認識這個,把它當成了輸出。導致header出錯。別怕,還是有解決的方法。

很簡單,直接使用editplus儲存為utf-8即可。因為editplus的utf-8是去除了bom的。

c.純php頁面的中文亂碼解決方案(資料是靜態的)

只要在頁面的開始加上

<?php header("content-type:text/html;charset=utf-8"); ?>

然後儲存為utf-8編碼的檔案即可。注意和方案b一樣。注意用那些去除bom的編輯器儲存。否則還是會報錯。

d.php+mysql中文亂碼解決方案

除了按方案c那樣的做法外,還要在你的資料查詢/修改/增加之前加入資料庫編碼。

<?php mysql_query('set names utf8'); //接下來的就是查出資料或者修改,增加咯 ?>

注意這裡的utf8和之前的不一樣。中間沒有橫線。

通過以上應該就能解決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 擷取字串的函式實現的。下面給...