溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何解決apache php亂碼的問題

發(fā)布時間:2020-07-29 09:35:32 來源:億速云 閱讀:242 作者:Leah 欄目:編程語言

這篇文章運用簡單易懂的例子給大家介紹如何解決apache php亂碼的問題,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

apache php亂碼的解決辦法:首先注釋掉“php.ini”中的代碼;然后將主目錄語言修改為“AddDefaultCharset utf-8”;接著將需要的文件夾更改編碼方式;最后重啟apache即可。

PHP顯示亂碼和apache內(nèi)部編碼問題的解決

編碼問題

PHP默認(rèn)的編碼是utf-8,測試時候為了方便不去寫html代碼的meta標(biāo)記也不會出現(xiàn)亂碼

E:\OpenStudy\www\CSphp

而我下載的幫助文檔的html版本電子資料需要的是gb2312的設(shè)置

E:\OpenStudy\www\Electronic Books

開始配置服務(wù)器的時候,php采用的是大家共同推薦的utf-8的編碼方式

[php.ini]
default_charset = "UTF-8"

服務(wù)器根目錄:

E:\OpenStudy\www

查閱的相關(guān)資料

AddDefaultCharset 指令
說   明 當(dāng)應(yīng)答內(nèi)容是text/plain或text/html時,在HTTP應(yīng)答頭中加入的默認(rèn)字符集
語   法 AddDefaultCharset On|Off|charset
默認(rèn)值 AddDefaultCharset Off
作用域 server config, virtual host, directory, .htaccess
覆蓋項 FileInfo
狀   態(tài) 核心(C)
模   塊 core

當(dāng)且僅當(dāng)應(yīng)答內(nèi)容是text/plain或text/html時,此指令將會在HTTP應(yīng)答頭中加入的默認(rèn)字符集。理論上這將覆蓋在文檔體中通過<meta>標(biāo)簽指定的字符集,但是實際的行為通常取決于用戶瀏覽器的設(shè)置。AddDefaultCharset Off 將會禁用此功能。AddDefaultCharset On 將啟用Apache內(nèi)部的默認(rèn)字符集iso-8859-1 。您也可以指定使用在IANA注冊過的字符集名字中的另外一個charset 。比如說:

AddDefaultCharset utf-8

AddDefaultCharset只應(yīng)當(dāng)在如下情況下使用:所有文本資源都使用同一種確定的字符集,且分別標(biāo)記他們的字符集非常麻煩。一個這樣的例子是向包含動態(tài)內(nèi)容的資源中添加字符集參數(shù)(比如先前遺留的CGI腳本),這樣可能會因為在輸出中包含用戶提供的數(shù)據(jù)而導(dǎo)致跨站點腳本攻擊。但是請注意:更好的解決辦法是修改或刪除這些腳本,因為設(shè)置了默認(rèn)的字符集以后將會使得瀏覽器的字符集自動探測功能失效。

AddCharset 指令
說明 在給定的文件擴展名與特定的字符集之間建立映射
語法 AddCharset charset extension [extension] ...
作用域 server config, virtual host, directory, .htaccess
覆蓋項 FileInfo
狀態(tài) 基本(B)
模塊 mod_mime

AddCharset指令在特定的文件擴展名與特定的字符集之間建立映射。charset是以extension為擴展名的文件的MIME字符集參數(shù)。這個映射關(guān)系會強制添加在所有現(xiàn)存的映射關(guān)系上,并覆蓋所有現(xiàn)存的extension擴展名映射。

AddLanguage ja .ja
AddCharset EUC-JP .euc
AddCharset ISO-2022-JP .jis
AddCharset SHIFT_JIS .sjis

有了以上定義以后,文檔xxxx.ja.jis會被當(dāng)成是使用字符集ISO-2022-JP的日文文檔(文檔xxxx.jis.ja也一樣)。AddCharset指令除了用于通知客戶端文檔的字符集編碼方式以便正確地翻譯和顯示以外,還用于內(nèi)容協(xié)商(根據(jù)用戶的優(yōu)先選擇信息,從幾個文檔中選擇一個返回給用戶)。

<Directory> 指令
說   明 封裝一組指令,使之僅對文件空間中的某個目錄及其子目錄生效
語   法 <Directory directory-path> ... </Directory>
作用域 server config, virtual host
狀   態(tài) 核心(C)
模   塊 core

<Directory>和</Directory>用于封裝一組指令,使之僅對某個目錄及其子目錄生效。任何可以在"directory"作用域中使用的指令都可以使用。Directory-path可以是一個目錄的完整路徑,或是包含了Unix shell匹配語法的通配符字符串。在通配符字符串中,"?"匹配任何單個的字符,"*"匹配任何字符序列。您也可以使用"[]"來確定字符范圍。以上通配符都不能匹配"/"字符。所以<Directory /*/public_html>將無法匹配/home/user/public_html ,但<Directory /home/*/public_html>能夠正確匹配。比如說:

<Directory /usr/local/httpd/htdocs> 
  Options Indexes FollowSymLinks 
</Directory>

使用directory-path參數(shù)的時候要注意:它們必須與Apache用于訪問文件的文件系統(tǒng)路徑保持一致。賦予特定<Directory>的指令將無法對通過不同路徑指向的同一個目錄文件生效,比如說通過另外一個符號連接生成的路徑。

解決方法

1.注釋掉php.ini中的代碼

[php.ini]
;default_charset = "UTF-8"

2.將主目錄語言修改為

AddDefaultCharset  utf-8

將需要的文件夾【E:/OpenStudy/www/Electronic Books】更改編碼方式

<Directory "E:/OpenStudy/www/Electronic Books">
  AddDefaultCharset gb2312
</Directory>

修改完成,重啟apache,大功告成

關(guān)于如何解決apache php亂碼的問題就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI