首頁  >  文章  >  後端開發  >  php輸出亂碼怎麼辦

php輸出亂碼怎麼辦

藏色散人
藏色散人原創
2020-09-01 10:37:434987瀏覽

php輸出亂碼的解決方法:1.利用mb_convert_encoding()函式進行轉碼;2、設定資料庫的編碼方式為utf8;3、在儲存檔案時修改編碼為utf8。

php輸出亂碼怎麼辦

推薦:《PHP影片教學

PHP出現亂碼,解決亂碼的方法

一,出現亂碼的原因分析

1,儲存檔案時候,檔案有自己的檔案編碼,就是漢字,或是其他國語言,以什麼編碼來儲存

2,輸出的時候,要給內容指定編碼,如以網頁的形勢輸入時

3,從資料庫取出資料時,搞不清楚資料庫,設定的字符集

4,以漢字為例,漢字本來也有編碼的,一個漢字gbk要二個字符,而utf8要三個字元

上面說了有可能造成亂碼的潛在原因,我現在把它們排列組合一下。

第一種情況,儲存檔案和顯示編碼的不一致

假如儲存檔案時候,你用的utf8編碼,網頁輸出時,你設定的是gbk編碼,這樣就會出現亂碼,

第二種情況,保存文件和資料庫的儲存的字元不一致

假如,保存文件的編碼和網頁顯示的編碼一樣時,還是出現亂碼了,例如,你儲存檔案時,用的utf8編碼,而你資料庫用的是gb2312字元集來儲存資料。

第三種情況,已經亂碼了,你還認為沒有

當你發現出現亂碼時,去改變保存文件的編碼的時候,utf8情況是好的,當你把它換成gbk的話就亂碼了,但是你還以為是好的。這也是出現亂碼的原因。這種情況會經常出現。

第四種情況,資料庫裡面本來就是亂碼

資料的字元集,保存檔案的編碼,網頁顯示編碼都一樣了,還是出現亂碼了,這種情況大多數,是資料入資料庫的時候,就亂碼了,這種情況是比較麻煩的。 

二,我解決亂碼的方法,百試不爽

我把這種方法起個名子叫庖丁解牛法。哈哈。資料庫,保存檔案編碼,顯示時候的編碼必須一致,並且以資料庫為準

第一種,資料庫和保存檔案的編碼是utf8,網頁顯示呢是gb2312,這個時候,我們就要改顯示編碼了

第二種,資料庫和網頁顯示都是utf8,保存文件用的是gb2312,這時候呢,要注意一種,直接把保存文件的編碼改過,是不行的,在改編碼之前,把文件的內容先COPY一下,編碼改過以後,在把剛才COPY的內容粘回去,這樣就OK了.

第三種,資料庫用的utf8,保存檔案和顯示編碼是gb2312,這個時候呢,你可以用程式自帶的函數把從資料庫取出的資料進行一下轉碼把,utf8轉成gb2312這樣就不用去改變文件自己的編碼了,以及顯示編碼了。以php為例,mb_convert_encoding($string,”gb2312″,”utf8″);

第四種,資料庫亂碼,是資料輸入時候,資料本身和資料庫儲存編碼不一樣造成的。例如:資料庫的儲存編碼是utf8,在資料入庫的時候,加上一個mysql_query(“set names utf8;”);

三,亂碼表現的情勢

#亂碼的表現呢,我是遇過二個,

1)就是出現在的字體亂碼了,變成怪七怪八的字符了

2)就是直接是空白頁面,查看原始碼呢,什麼都沒有,像這種情況,有的時候,很想起是因為是亂碼造成的。右鍵頁面在,查看屬性,改程式就知道是不是因為亂碼引起的空白頁面了。

以上是php輸出亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn