麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > Apache > 正文

關于Apache默認編碼錯誤 導致網站亂碼的解決方案

2024-08-27 18:28:02
字體:
來源:轉載
供稿:網友
最近經常有同學在使用LAMP/WAMP時,遇到這樣的編碼錯誤問題:

A網站程序編碼UTF-8編碼安裝成功,運行成功。

B網站程序編gb2312也要安裝在同一服務器上。

這樣就出現問題了,Apache默認編碼UTF-8在解析A網站的時候沒有任何問題,當運行B網站時出現的"蝌蚪文"亂碼問題。

單純的修改Apache默認編碼為gb2312這樣就導致A網站出現"蝌蚪文"。

問題分析:

如果你在網上搜索 “apache配置”,搜到的頁面大多都會建議你在httpd.conf中加上這么一句:AddDefaultCharset GB2312。

對于新手而且是只用GB2312編碼的開發人來說,這么做是ok的。但是如果要想使用UTF-8字符集的話,比如 在test.php文件中需要有 meta http-equiv="Content-Type" content="text/html; charset=UTF-8" 這段代碼。

這時你再打開瀏覽器訪問test.php頁面的話,你看到的是正確的頁面。但是如果實際上瀏覽器還是以GB2312編碼解釋從服務器返回的response,為什么呢?原因是瀏覽器是根據http應答消息頭部中的 Content-type: text/html; charset=GB2312 來決定使用何種編碼解釋應答,也就是說apache服務器仍然用GB2312編碼傳遞數據。

所以說如果apache的默認字符集被設置成了GB2312,即使在頁面中聲明使用UTF-8編碼,apache服務器還是會按照GB2312編碼來傳送http response。沒關系,我們把AddDefaultCharset GB2312 改成 AddDefaultCharset UTF-8,看看什么結果?

如果你看到亂碼恭喜你,你還知道是亂碼問題;如果你看到是空白頁面,那么你就慘了,你可能會以為這是其他什么原因造成的,而不會從編碼的角度去考慮怎么解決問題。這是為什么?原因在于php文件本身是用系統字符集來編碼的,中文的windows XP都是用GB2312,每一個文件頭部都有字段指示該文件是用何種方式編碼的。當apache接到瀏覽器的請求后,會讓php去解釋所請求的頁面,比如 test.php。php會識別出test.php的編碼方式是GB2312后(就像我們用javac編譯java源文件時,編譯器默認用系統編碼讀源文件里的內容。

如果源文件不是用系統編碼來保存的,可以用命令javac -encoding指定具體的編碼),把數據以GB2312的編碼格式傳遞給apache,而apache服務器不會改變從php傳來的數據,只是在應答消息頭部中把字符集設置成UTF-8: Content-type: text/html; charset=UTF-8. 也就是說你傳遞的是GB2312編碼的數據,而瀏覽器卻以UTF-8編碼來解釋應答消息。

由于UTF-8為3個字節表示一個漢子,而普通的GB2312或BIG5是兩個。頁面輸出時,由于上述原因,出現半個漢字的情況,這時該半個漢字會和的>結合成一個亂碼字,導致IE無法讀完的話,會發現實際上整個葉面全部已經輸出了。如果使用的是Mozilla、Mozilla Firefox、Sarafi的瀏覽器這不會造成這個問題,而是一堆亂碼。這是由于Firefox瀏覽器和IE解析網頁編碼的策略不同產生的。OK,我們把test.php以UTF-8保存,再用瀏覽器訪問時,就沒有問題了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲嫩草av | 操操电影 | 久国久产久精永久网页 | 久久国产精品二国产精品中国洋人 | 亚洲欧美aⅴ | 人人舔人人舔 | 韩国一级免费视频 | 香蕉成人在线视频 | 久久亚洲春色中文字幕久久 | 在线成人免费视频 | 亚洲电影免费观看国语版 | 曰韩黄色片 | 369看片你懂的小视频在线观看 | 久久久久99999 | 娇喘在线| 国产一区二区精品91 | 国产91九色视频 | 精精国产xxxx视频在线野外 | 91成人亚洲| 日韩视频www | 国产成人av免费看 | 国产精品久久久久久久久久尿 | 欧美乱论| 亚洲综合网站 | 欧美精品色精品一区二区三区 | 国人精品视频在线观看 | chinese中国真实乱对白 | 亚洲一区二区免费 | 日本视频免费观看 | 国产精品久久久久久久四虎电影 | 亚洲精品成人久久 | 亚洲va国产va | 精品国产一级毛片 | 久久亚洲春色中文字幕久久 | 中文日产幕无线码6区免费版 | 一级在线免费观看视频 | 逼片| 免费亚洲视频在线观看 | 亚洲电影免费观看国语版 | 国产一区二区三区黄 | 国产成人高清在线 |