這篇文章運用簡單易懂的例子給大家介紹如何解決apache php亂碼的問題,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
成都創新互聯公司自2013年創立以來,先為巴東等服務建站,巴東等地企業,進行企業商務咨詢服務。為巴東企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
apache php亂碼的解決辦法:首先注釋掉“php.ini”中的代碼;然后將主目錄語言修改為“AddDefaultCharset utf-8”;接著將需要的文件夾更改編碼方式;最后重啟apache即可。
PHP顯示亂碼和apache內部編碼問題的解決
編碼問題
PHP默認的編碼是utf-8,測試時候為了方便不去寫html代碼的meta標記也不會出現亂碼
E:\OpenStudy\www\CSphp
而我下載的幫助文檔的html版本電子資料需要的是gb2312的設置
E:\OpenStudy\www\Electronic Books
開始配置服務器的時候,php采用的是大家共同推薦的utf-8的編碼方式
[php.ini] default_charset = "UTF-8"
服務器根目錄:
E:\OpenStudy\www
查閱的相關資料
AddDefaultCharset 指令 說 明 當應答內容是text/plain或text/html時,在HTTP應答頭中加入的默認字符集 語 法 AddDefaultCharset On|Off|charset 默認值 AddDefaultCharset Off 作用域 server config, virtual host, directory, .htaccess 覆蓋項 FileInfo 狀 態 核心(C) 模 塊 core
當且僅當應答內容是text/plain或text/html時,此指令將會在HTTP應答頭中加入的默認字符集。理論上這將覆蓋在文檔體中通過<meta>標簽指定的字符集,但是實際的行為通常取決于用戶瀏覽器的設置。AddDefaultCharset Off 將會禁用此功能。AddDefaultCharset On 將啟用Apache內部的默認字符集iso-8859-1 。您也可以指定使用在IANA注冊過的字符集名字中的另外一個charset 。比如說:
AddDefaultCharset utf-8
AddDefaultCharset只應當在如下情況下使用:所有文本資源都使用同一種確定的字符集,且分別標記他們的字符集非常麻煩。一個這樣的例子是向包含動態內容的資源中添加字符集參數(比如先前遺留的CGI腳本),這樣可能會因為在輸出中包含用戶提供的數據而導致跨站點腳本攻擊。但是請注意:更好的解決辦法是修改或刪除這些腳本,因為設置了默認的字符集以后將會使得瀏覽器的字符集自動探測功能失效。
AddCharset 指令 說明 在給定的文件擴展名與特定的字符集之間建立映射 語法 AddCharset charset extension [extension] ... 作用域 server config, virtual host, directory, .htaccess 覆蓋項 FileInfo 狀態 基本(B) 模塊 mod_mime
AddCharset指令在特定的文件擴展名與特定的字符集之間建立映射。charset是以extension為擴展名的文件的MIME字符集參數。這個映射關系會強制添加在所有現存的映射關系上,并覆蓋所有現存的extension擴展名映射。
AddLanguage ja .ja AddCharset EUC-JP .euc AddCharset ISO-2022-JP .jis AddCharset SHIFT_JIS .sjis
有了以上定義以后,文檔xxxx.ja.jis會被當成是使用字符集ISO-2022-JP的日文文檔(文檔xxxx.jis.ja也一樣)。AddCharset指令除了用于通知客戶端文檔的字符集編碼方式以便正確地翻譯和顯示以外,還用于內容協商(根據用戶的優先選擇信息,從幾個文檔中選擇一個返回給用戶)。
<Directory> 指令 說 明 封裝一組指令,使之僅對文件空間中的某個目錄及其子目錄生效 語 法 <Directory directory-path> ... </Directory> 作用域 server config, virtual host 狀 態 核心(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參數的時候要注意:它們必須與Apache用于訪問文件的文件系統路徑保持一致。賦予特定<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,大功告成
關于如何解決apache php亂碼的問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網頁名稱:如何解決apachephp亂碼的問題
鏈接地址:http://vcdvsql.cn/article46/poddeg.html
成都網站建設公司_創新互聯,為您提供企業建站、網站制作、商城網站、靜態網站、云服務器、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯