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

瀏覽器顯示亂碼問題


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

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

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

補充知識:
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編碼的字符,顯示結果正確。









工具

相關文章
相關標籤/搜索