Eclipse Workspace編碼與網頁亂碼

來源:互聯網
上載者:User

   今天用eclipse(其實是Aptana)寫一個簡單測試網頁時,用瀏覽器開啟網頁發現亂碼,HTML頁面頭是這麼寫的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html xmlns="http://www.w3.org/1999/xhtml">    <head>        <meta http-equiv="Content-Type" content="text/html; charset=gbk" />

   注意上面的<meta>標籤,即我告訴瀏覽器當前頁面是用GBK編碼的。本以為一切都沒問題,但是用瀏覽器開啟就出現亂碼了,如下:

   為什麼會這樣呢?

   我想了一會覺得應該查看下Eclipse預設的字元編碼格式,通過Windows->Preferences->Workspace->Text file encoding開啟,如下:

   可以看到我的eclipse預設設定檔案編碼格式為UTF-8。

   那這個跟亂碼有關係嗎?

   當然有關係,問題恰出於此。下面我來仔細說下。

1、eclipse設定了文字檔預設編碼方式為UTF-8,所以我編寫的HTML頁面中的中文也都是按UTF-8進行編碼的2、<meta>頭標籤設定了charset屬性,只是告訴瀏覽器當前HTML頁面是按GBK編碼的3、瀏覽器解析頁面時,發現<meta>標籤指定了字元編碼為gbk。而根據第一步我們知道HTML頁面實際上是按UTF-8編碼的,又GBK編碼和UTF-8編碼不是相容的,所以自然就出現亂碼了

   真相大白後,發現原理很簡單。我只需要修改<meta>標籤的charset值為utf-8,就沒有亂碼了。這還能解釋各位包括我自己以前遇到的一個現象:從網上下別人的代碼檔案,拷貝到eclipse下出現亂碼。原因也是別人的代碼檔案的編碼方式和eclipse預設的檔案編碼方式不一致。

   這個例子給我們的啟發是:

要想最大可能地避免亂碼,最簡單的方法是保證所有可以設定的地方編碼一致。比如這裡我設定<meta>標籤的charset屬性值為utf-8就不會出現這種問題了。

   順便再提下,我們也可以單獨為每個工程項目設定字元編碼,如下(Sudoku項目):

   而且也可以單獨為某個檔案設定字元編碼格式:

   eclipse的全域字元編碼、項目的字元編碼、某個檔案的字元編碼,優先順序由低到高。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.