[精讚] [會員登入]
3607

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

你可能感興趣的文章

網頁的標頭(head)搜尋引擎和FB最佳化 網頁的標頭(head)搜尋引擎和facebook最佳化

[CSS] HTML 畫出粗外框表格的方法 (粗框表格) 在畫表格的時候,習慣上表格的外框要比內部的線條來得粗,不但比較美觀,而且看起來比較完整

讓radio box 或checkbox 好按 在行動裝置下,radio box及checkbox變得很難按得到

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

CSS 的 !important 意義 網頁的前端工程師非常頭痛的事,就是同時要處理 IE和 FF等不同的瀏覽器,更糟的是 IE 又分成了 6 7 8三種版本,

[CSS] 將多張圖片合併,製作css spirte 網站中有很多的小圖,如果能把他們合併後再用CSS取用,就能大幅的提升網路效能。

隨機好文

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

[CodeIgniter3] 解決無法上傳特定檔案(.sb2)的問題 上傳時出現The filetype you are attempting to upload is not allowed,要怎麼解決?

維修海棉拖把頭 這類型的海棉拖把很好用,可是這近發現海棉頭越來越不耐用,也許是錯覺,以往都能用個三四個月,現在二個月就差不多掉下來。 這

[AS3] 物件加上超連結的方法 物件加上超連結,可讓使用者點擊的方法

[AS3] 變數型態 基本類型宣告 as3 有下列幾種基本類型:string, int, number, object, boolean, n