UTF-8空行產生的原因

來源:互聯網
上載者:User
前不久遇到個很鬱悶的問題,頁面頂部老是會多出一個空行,一直搞不懂是怎麼回事,今天總算找到原因了.

UTF-8簽名(UTF-8 signature)也叫做BOM(Byte Order Mark),是UTF編碼方案裡用於標識編碼的標準標記。如果多個檔案設定了簽名,在二進位流中就會包含多個UTF-8簽名,而IE是無法識別多個UTF-8簽名的,所以用一個空行來代替,在某些程式處理中還會出現一個類似“諾”的字元。

在UCS 編碼中有一個叫做”ZERO WIDTH NO-BREAK SPACE”的字元,它的編碼是 FEFF。而FFFE在UCS中是不存在的字元,所以不應該出現在實際傳輸中。UCS規範建議我們在傳輸位元組流前,先傳輸 字元”ZERO WIDTH NO-BREAK SPACE”。這樣如果接收者收到FEFF,就表明這個位元組流是Big-Endian的;如果收到FFFE,就表明這個位元組流是Little- Endian的。因此字元”ZERO WIDTH NO-BREAK SPACE”又被稱作BOM。

詳情:
W3C官方關於這個問題的說明:http://www.w3.org/International/questions/qa-utf8-bom

解決方案是去掉UTF-8檔案的簽名,EditPlus和Dreamweaver中均有相應的選項。以EditPlus為例:進入 Tools->Preferences->Files,在UTF-8 signature選項中選擇“Always remove signature”,重新儲存檔案即可。

如果模板採用包含的方法包含多個utf8檔案需要用ultraedit儲存時另存新檔功能,選擇utf8 無bom格式儲存即可。
另外,如果中文頁面在html head標記中將title標記放在前面會導致頁面空白。
所以utf8頁面應該使用標準順序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.