小編給大家分享一下php都是亂碼的解決方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)、做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出平利免費(fèi)做網(wǎng)站回饋大家。
php亂碼的解決辦法:1、設(shè)置數(shù)據(jù)庫(kù)和保存文件的編碼為“utf8”;2、保存文件時(shí)修改編碼;3、使用“mb_convert_encoding”函數(shù)進(jìn)行轉(zhuǎn)碼;4、設(shè)置數(shù)據(jù)庫(kù)的存儲(chǔ)編碼為“utf8”。
PHP出現(xiàn)亂碼,解決亂碼的方法
一,出現(xiàn)亂碼的原因分析
1,保存文件時(shí)候,文件有自己的文件編碼,就是漢字,或者其他國(guó)語言,以什么編碼來存儲(chǔ)
2,輸出的時(shí)候,要給內(nèi)容指定編碼,如以網(wǎng)頁(yè)的形勢(shì)輸入時(shí)
3,從數(shù)據(jù)庫(kù)取出數(shù)據(jù)時(shí),搞不清楚數(shù)據(jù)庫(kù),設(shè)置的字符集
4,以漢字為例,漢字本來也有編碼的,一個(gè)漢字gbk要二個(gè)字符,而utf8要三個(gè)字符
上面說了有可能引起亂碼的潛在原因,我現(xiàn)在把它們排列組合一下。
第一種情況,保存文件和顯示編碼的不一致
假如保存文件時(shí)候,你用的utf8編碼,網(wǎng)頁(yè)輸出時(shí),你設(shè)置的是gbk編碼,這樣就會(huì)出現(xiàn)亂碼,
第二種情況,保存文件和數(shù)據(jù)庫(kù)的存儲(chǔ)的字符不一致
假如,保存文件的編碼和網(wǎng)頁(yè)顯示的編碼一樣時(shí),還是出現(xiàn)亂碼了,例如,你保存文件時(shí),用的utf8編碼,而你數(shù)據(jù)庫(kù)用的是gb2312字符集來存儲(chǔ)數(shù)據(jù)。
第三種情況,已經(jīng)亂碼了,你還認(rèn)為沒有
當(dāng)你發(fā)現(xiàn)出現(xiàn)亂碼時(shí),去改變保存文件的編碼的時(shí)候,utf8情況是好的,當(dāng)你把它換成gbk的話就亂碼了,但是你還以為是好的。這也是出現(xiàn)亂碼的原因。這種情況會(huì)經(jīng)常出現(xiàn)。
第四種情況,數(shù)據(jù)庫(kù)里面本來就是亂碼
數(shù)據(jù)的字符集,保存文件的編碼,網(wǎng)頁(yè)顯示編碼都一樣了,還是出現(xiàn)亂碼了,這種情況大多數(shù),是數(shù)據(jù)入數(shù)據(jù)庫(kù)的時(shí)候,就亂碼了,這種情況是比較麻煩的。
二,我解決亂碼的方法,百試不爽
我把這種方法起個(gè)名子叫庖丁解牛法。哈哈。數(shù)據(jù)庫(kù),保存文件編碼,顯示時(shí)候的編碼必須一致,并且以數(shù)據(jù)庫(kù)為準(zhǔn)
第一種,數(shù)據(jù)庫(kù)和保存文件的編碼是utf8,網(wǎng)頁(yè)顯示呢是gb2312,這個(gè)時(shí)候,我們就要改顯示編碼了
第二種,數(shù)據(jù)庫(kù)和網(wǎng)頁(yè)顯示都是utf8,保存文件用的是gb2312,這個(gè)時(shí)候呢,要注意一種,直接把保存文件的編碼改過,是不行的,在改編碼之前,把文件的內(nèi)容先COPY一下,編碼改過以后,在把剛才COPY的內(nèi)容粘回去,這樣就OK了.
第三種,數(shù)據(jù)庫(kù)用的utf8,保存文件和顯示編碼是gb2312,這個(gè)時(shí)候呢,你可以用程序自帶的函數(shù)把從數(shù)據(jù)庫(kù)取出的數(shù)據(jù)進(jìn)行一下轉(zhuǎn)碼把,utf8轉(zhuǎn)成gb2312這樣就不用去改變文件自己的編碼了,以及顯示編碼了。以php為例,mb_convert_encoding($string,”gb2312″,”utf8″);
第四種,數(shù)據(jù)庫(kù)亂碼,是數(shù)據(jù)錄入時(shí)候,數(shù)據(jù)本身和數(shù)據(jù)庫(kù)存儲(chǔ)編碼不一樣造成的。例如:數(shù)據(jù)庫(kù)的存儲(chǔ)編碼是utf8,在數(shù)據(jù)入庫(kù)的時(shí)候,加上一個(gè)MySQL_query(“set names utf8;”);
三,亂碼表現(xiàn)的形勢(shì)
亂碼的表現(xiàn)呢,我是遇到過二個(gè),
1)就是出現(xiàn)在的字體亂碼了,變成怪七怪八的字符了
2)就是直接是空白頁(yè)面,查看源碼呢,什么都沒有,像這種情況,有的時(shí)候,很想起是因?yàn)槭莵y碼造成的。右擊頁(yè)面在,查看屬性,改一下編碼就知道是不是因?yàn)閬y碼引起的空白頁(yè)面了。
以上是php都是亂碼的解決方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!