瀏覽器亂碼問題的具體解決


瀏覽器顯示亂碼問題


首先,在介紹瀏覽器亂碼問題之前。我說一下關於文件編碼和解碼的問題。
假設我使用EditPlus編輯文本,設置Editplus的默認編碼環境為ANSI。新建文本,輸入:“你好中國”,文件另存為ANSI格式。文件名稱為test.txt。

然后,我打開EditPlus,改變EditPlus的默認編碼環境為Unicode(詳細步驟問度娘就可以)。文件-->打開,打開test.txt文件,發現亂碼問題(此處,我自己也有個疑問。我在筆記本上測試時出現亂碼。但在台式機測試時,有時候不出現亂碼,產生這個問題的解決辦法可能和系統環境有關,也可能和EditPlus的版本號有關。我沒有再深究。假設有明確的朋友,評論一下,謝謝)。

EditPlus打開test.txt文件,使用的是Unicode編碼規則來解碼ANSI編碼的字符。通過補充知識的內容,顯而易見會產生亂碼問題。

補充知識:
1.“你好中國”相應的ANSI編碼為“C4E3 BAC3 D6D0 B9FA”。


“你好中國”相應的Unicode編碼為“\u4F60 \u597D \u4E2D \u56FD”
2.文件是保存在硬盤上的,而硬盤僅僅能以2進制(通過是否被磁化來區分是1還是0)存儲文字等信息,test.txt在硬盤上存儲的數據域為“C4E3 BAC3 D6D0 B9FA”的2進制表示形式。

以下,開始介紹瀏覽器亂碼問題,我是用的是phpstrom集成開發環境(默認編碼環境為utf-8)
編輯test.php文件代碼例如以下:
<?php
    echo "漢字會產生亂碼";
?

>
通過360瀏覽器訪問test.php文件,顯示結果例如以下:
”奼夊瓧浼氫駭鐢熶貢鐮�“(出現了亂碼問題)

分析產生亂碼原因:
右擊產生亂碼的網頁,然后點擊“編碼”,發現此時360瀏覽器編碼為“中文(簡體)GBK”,使用GBK解碼utf-8編碼的字符文件,當然會產生亂碼。

解決方法:

1.改變瀏覽器的編碼。點擊編碼后,選擇uft-8,輸出的結果顯示正常:”漢字會產生亂碼“。

2.在設置header charset解決這個問題。test.php文件里加入一行設置編碼的代碼,例如以下:
<?php
    header("Content-type:text/html;Charset=utf-8");
    echo "漢字會產生亂碼";
?>
(顯示結果是正常的)
使用瀏覽器自帶的開發者工具(F12),得到響應頭中的信息:
HTTP/1.1 200 OK
X-Powered-By: PHP/5.3.10
Content-type: text/html;Charset=utf-8
Server: PhpStorm 7.1.3
Content-Length: 21
此時發現360瀏覽器編碼為Unicode(utf-8)。也就是說360瀏覽器依據響應頭中的Charset=utf-8自己主動選擇編碼為utf-8來解碼發送過來的uft-8編碼的字符,顯示結果正確。










免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM