[精讚] [會員登入]
2670

UTF-8 BOM (Byte Order Mark) 的問題

在 Michael Kaplan 那看到 Every character has a story #4: U+feff

分享此文連結 //n.sfs.tw/10053

分享連結 UTF-8 BOM (Byte Order Mark) 的問題@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 12:12:40 最後編修
2016-10-19 11:56:27 By 張○○
 

自動目錄

在 Michael Kaplan 那看到 Every character has a story #4: U+feff (alternate title: UTF-8 is the BOM, dude!) 解釋為甚麼 Windows 2000 以後的 Notepad 存 UTF-8 的檔案會加上 BOM(Byte Order Mark, U+FEFF), 主要是因為 UTF-8 和 ASCII 是相容的, 為了避免使用者自己忘記用甚麼存, 造成 UTF-8 檔案用 ASCII 模式開看到是亂碼, 所以在檔案最前面加上 BOM(是的, MS 總是考慮普羅大眾)

然後提到了很多程式, 尤其是 unix 上的工具和一些 xml 工具, 只能處理沒有加上 BOM 的 UTF-8 檔案, 以及根據標準, 為甚麼這樣子不能叫做符合標準, 他有順便錶一下自家的 FrontPage 2000 啦, 不過主要還是抱怨一堆不懂 unicode 標準的人自以為是專家在那邊罵 MS :P

如果在 Smarty 中 include 了 UTF-8 格式的檔案,就要小心 BOM (Byte Order Mark) 的問題。

BOM 的由來簡單來說是為了讓一些編輯程式能夠辨認該檔案是不是屬於 Unicode 格式,請參考[2]。

那麼為什麼 BOM 會造成影響呢?因為 BOM 對 HTML 來說是屬於字元,所以 include UTF-8 的檔案時,HTML 就會就會認為被 include 的子樣版上方有個字元,因此就會保留一個空間給它了,就是你們看到那個白白的空行。

(BOM在這裡,但你看不見它)<?php
session_start();
?>

延伸閱讀

[PHP] 移除檔案的UTF8 BOM

參考資料

[1] 網站製作學習誌 http://blog.roodo.com/jaceju/archives/1100799.html
[2] 憤怒的青蛙: UTF-8, BOM, Micrisoft


原文 2009-02-10 14:25:13

END

你可能感興趣的文章

UTF-8 BOM (Byte Order Mark) 的問題 在 Michael Kaplan 那看到 Every character has a story #4: U+feff

[HTLM5] 表單number和range輸入類型 介紹HTML5和數字有關的輸入類型number/range 等類型

[HTML] 影像地圖 使用HTML的MAP標籤製作影像地圖

網頁自動轉址的四種方法 設定網頁自動轉址的四種方法,三種html,一種php

[CSS] 背景 background css 中最常用的特性(property)之一就是 background ,這個有什麼好難的?事實上 backgroun

如何讓瀏覽器每次都重新載入css、js、圖檔 不管怎麼刷新網頁,他總是跑出來舊的內容,這對開發的人來說很困擾...

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[jQuery] textarea 的取值和給值 HTML 的 TEXTAREA 標籤若要用 jquery 取值,不能使用 .text() 或 .html() ,使用 .

談借錢 人借錢時手心向上頭向下,人還錢時手心向下頭向上

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

海棉寶寶超泡杯演奏的sweet victory 章魚哥和海棉寶寶在超泡杯的演奏歌曲

[MAC] 安裝APACHE+PHP OS Darwin OpenIDMac1deAir 15.6.0 Darwin Kernel Version 15.6.