有三種原因會造成html網頁亂碼原因。那麼我們今天就來談談三種不同的產生原因以及三種問題的解決方案。
造成html網頁亂碼原因主要是html原始碼內中文字內容與html編碼不同造成。但無論是哪種情況造成亂碼在網頁開始時候都需要設定網頁編碼。
亂碼造成原因
1、例如網頁原始碼是gbk的編碼,而內容中的中文字是utf-8編碼的,這樣瀏覽器開啟即會出現html亂碼。反之網頁是編碼utf-8,內容是gbk也會出現亂碼。
2、html網頁編碼是gbk,而程式從資料庫中調出呈現是utf-8編碼的內容也會造成編碼亂碼。
3、瀏覽器無法自動偵測網頁編碼,造成網頁亂碼。
解決亂碼方法
第一種,html網頁原始碼編碼與中文字輸入編碼不同。
解決方法:
使用軟體進行編輯HTML網頁內容,建議使用DW軟體進行HTML程式碼編輯與開發。
盡量不要直接使用記事本來編輯HTML程式碼。
第二種,如果網頁設定編碼是gbk的,而資料庫儲存資料編碼格式是UTF-8的,這個時候程式查詢資料庫數據顯示資料前進鄉程式轉碼即可。
例如PHP程式+mysql查詢顯示資料轉碼:
1、mysql_query("SET NAMES 'UTF8'"); //將查詢資料轉碼為utf8,也就是轉換為utf-8
2、mysql_query("SET NAMES 'GBK'");//將查詢資料轉碼為GBK,如gbk2312
在寫資料庫連接文件時,寫成:
$conn = mysql_connect("$host","$user","$password"); mysql_query("SET NAMES 'UTF8'"); mysql_select_db("$database",$conn);
然後在做頁面時,注意這句:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
這樣不管輸入資料庫的中文,還是頁面顯示,就都正常了。
在DW CS4版裡,預設產生的也是utf8頁面。
同樣的,如果一開始寫資料庫連接檔案時寫成:
mysql_query("SET NAMES 'GBK'");
那頁面也要相應變成:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
其它asp程式或其它程式語言網站根據實際情況到百度查詢轉換編碼方法。
第三種,瀏覽器造成亂碼。
這個可能是你網頁沒有設定meta charset編碼造成。導致瀏覽器無法辨識你網頁預設編碼類型。解決方法:
1、如果瀏覽器瀏覽時候出現網頁亂碼,在瀏覽器中找到轉換編碼的選單。
在IE9瀏覽器中需要轉碼的網頁空白出右鍵滑鼠,即可選擇「編碼」。
傲遊瀏覽器中瀏覽需要轉碼的網頁時,選單「檢視」-->「編碼」即可選擇轉換編碼
Google瀏覽器中瀏覽需要轉碼的網頁時,點擊右上角「三橫」圖示選擇「工具」-->「編碼」即可選擇切換網頁編碼達到讓瀏覽器瀏覽此網頁不是亂碼。
導致HTML網頁亂碼的原因以及解決方法就這麼多,需要的朋友可以保存一下,也請大家持續關注本站的其他更新。
相關閱讀:
以上是html為什麼有亂碼以及解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!