PHP中文亂碼問題

2021-07-05 15:51:03 字數 1237 閱讀 7027

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

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

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

view plaincopy to clipboardprint?

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

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

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

view plaincopy to clipboardprint?

<?phpheader("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頁面的中文亂碼解決方案(資料是靜態的)

只要在頁面的開始加上 

view plaincopy to clipboardprint?

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

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

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

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

view plaincopy to clipboardprint?

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

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

通過以上應該就能解決php中文亂碼的問題了。呼呼~~

php中文亂碼問題

用php讀取檔案時經常遇到中文亂碼的問題,中文亂碼一般是因為編碼設定問題,主要分兩種情況 用php上傳檔案時,先將檔案上傳到臨時資料夾 在配置檔案中設定,如果沒有設定採用預設路徑 再將臨時檔案移動到目標資料夾下,如果上傳檔案的檔名為中文,儲存檔案時可能變為亂碼,解決辦法 在移動臨時檔案之前新增編碼轉...

php中文亂碼問題

在實際程式設計中經常遇到一些中文編碼的問題,即便已經用來指定了編碼方式,有時也會產生中文亂碼,後來經過實際操作絕得一下三種方式比較可靠 1 如果是單純的輸出可以用iconv函式 國際化字元支援。例如用,echo iconv utf 8 utf 8 曹志攀 其實iconv是php的字元轉換函式,第乙個...

解決php中文亂碼問題

最近在學習php的時候遇到中文亂碼問題。解決方法很簡單 1.首先我們要保持介面的編碼一致 以utf 8為準 靜態html中 在php 塊中 設定 意在告訴瀏覽器以utf 8的編碼方式讀取。2.資料庫的編碼在建立資料庫的時候請設定為utf 8,因為這樣會更通用。3.每次在連線資料庫的時候在執行 con...