[精讚] [會員登入]
2790

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] 背景 background css 中最常用的特性(property)之一就是 background ,這個有什麼好難的?事實上 backgroun

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

關閉瀏覽器表單的自動完成autocomplete 什麼是自動完成?就是當我們在網頁的輸入文字欄位中打入文字時,瀏覽器會把曾輸入過歷史記錄中找出來讓我們選擇。

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

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

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

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

Smarty安裝 smarty 是著名的樣版引擎,非常的好用,用多了突然發現拿掉smarty反而不會寫php了,以下是安裝過程..

[PHP] 檢查檔案是否是圖檔 使用getimagesize函數檢查檔案是否是圖檔

精讚的版面變化 ▓此文僅作為舊文的記錄▓ 這篇文章為了紀念改版完成而撰寫。 原本的部落格是民國97年的作品,那時還是用舊有的技術來寫,很

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