[精讚] [會員登入]
3133

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

你可能感興趣的文章

[CSS] placeholder 屬性的CSS怎麼設定? 常會用到的placeholder可以在沒填值時有提示的文字,想要改變格式該怎麼做?

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

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

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

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

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

隨機好文

如何在linux下執行java 原生的java應用程式可以使用簡單的方法在console下面寫出來,適合作簡單的應用

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

看懂DSUB DVI HDMI USB等各式影音接頭 看懂DSUB DVI HDMI等各式影音接頭

[Win7] 燒錄 iso 檔 在Windows7 中內建燒錄程式,可以直接把檔案拉到光碟機裡,再執行燒錄。

維修冰箱 維修冰箱