解析:
1. 網面源代碼是gbk的編碼,而內容中的中文字是utf-8編碼的,這樣瀏覽器打開即會出現html亂碼。反之網頁是編碼utf-8,內容是gbk也會出現亂碼。
解決方法:
使用軟件進行編輯HTML網頁內容
2. html網頁編碼是gbk,而程序從數據庫中調出呈現是utf-8編碼的內容也會造成編碼亂碼。
解決方法:
- 如果網頁設置編碼是gbk的,而數據庫儲存數據編碼格式是UTF-8的,這個時候程序查詢數據庫數據顯示數據前進鄉程序轉碼即可。
例如PHP程序+mysql查詢顯示數據轉碼: - mysql_query("SET NAMES 'UTF8'"); //將查詢數據轉碼為utf8,也就是轉換為utf-8
- 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" />
同樣的,如果一開始寫數據庫連接文件時寫成:
mysql_query("SET NAMES 'GBK'");
那頁面也要相應變成:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
3. 瀏覽器不能自動檢測網頁編碼,造成網頁亂碼。
解決方法:
- 在瀏覽器中找到轉換編碼的菜單轉換編碼
- 在IE9瀏覽器中需要轉碼的網頁空白出右鍵鼠標,即可選擇“編碼”。
- 傲游瀏覽器中瀏覽需要轉碼的網頁時,菜單“查看”-->“編碼”即可選擇轉換編碼
- 谷歌瀏覽器中瀏覽需要轉碼的網頁時,點擊右上角“三橫”圖標選擇“工具”-->“編碼”即可選擇切換網頁編碼達到讓瀏覽器瀏覽此網頁不是亂碼。
- 如果自己開發網頁,必須網頁加入meta charset編碼標簽。
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
或
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
假如轉換時候,不是記事本編輯添加meta charset編碼標簽就完成,這樣同樣會造成亂碼,那是因為直接記事本添加或修改編碼格式后,而對應Html超文本文檔內容并沒有隨添加或修改編碼格式而變化,這個時候需要真正意義上的轉碼,所以最好借助開發軟件進行編碼添加與修改。
推薦DW軟件中修改編碼。在DW軟件中進行編碼修改或添加,并重新載入編碼的網頁。