Unicode簽名bom:計算機編程術語 - 中文百科知識
文章推薦指數: 80 %
計算機編程術語,BOM 是Byte Order Mark 的縮寫。
是UTF編碼方案里用於標識編碼的標準標記,在UTF-16里本來是FF FE,變成UTF-8就成了EF BB BF。
這個標記是可選的, ...
Unicode簽名bom 計算機編程術語,BOM是ByteOrderMark的縮寫。
是UTF編碼方案里用於標識編碼的標準標記,在UTF-16里本來是FFFE,變成UTF-8就成了EFBBBF。
這個標記是可選的,因為UTF8位元組沒有順序,所以它可以被用來檢測一個位元組流是否是UTF-8編碼的。
Unicode簽名bom最近在查看一些UTF8編碼的中文網站時遇到一件怪事,網頁顯示文字正常,用ie的察看源檔案(記事本打開)卻發現亂碼,firefox沒有這個問題。
經在網上多方查證和多次測試,解決了這個問題,其實是UTF-8檔案的Unicode簽名BOM問題。
什麼是bom?BOM是ByteOrderMark的縮寫。
是UTF編碼方案里用於標識編碼的標準標記,在UTF-16里本來是FFFE,變成UTF-8就成了EFBBBF。
這個標記是可選的,因為UTF8位元組沒有順序,所以它可以被用來檢測一個位元組流是否是UTF-8編碼的。
微軟做這種檢測,但有些軟體不做這種檢測,而把它當作正常字元處理。
微軟在自己的UTF-8格式的文本檔案之前加上了EFBBBF三個位元組,windows上面的notepad等程式就是根據這三個位元組來確定一個文本檔案是ASCII的還是UTF-8的,然而這個只是微軟暗自作的標記,其它平台上並沒有對UTF-8文本檔案做個這樣的標記。
查看utf-8的方法也就是說一個UTF-8檔案可能有BOM,也可能沒有BOM,那么怎么區分呢?四種方法。
1,用UltraEdit-32打開檔案,切換到十六進制編輯模式,察看檔案頭部是否有EFBBBF。
2,用Dreamweaver打開,察看頁面屬性,看“包括Unicode簽名BOM”前面是否有個勾。
3,用Windows的記事本打開,選擇“另外儲存為”,看檔案的默認編碼是UTF-8還是ANSI,如果是ANSI則不帶BOM。
Unicode簽名bom4:用emeditor打開,選擇“另外儲存為”,看編碼下面的添加unicode簽名(bom)(G)是否勾選。
如圖:在php中套用時的問題和解決方案注意用Convertz把gb2312檔案轉換成UTF-8檔案時,默認設定是不帶BOM的。
不帶BOM可能出現上述亂碼問題,但是帶BOM,對於php的include檔案要小心,會在php位元組流前面多出EFBBBF,提前輸出到顯示器有可能會帶來程式錯誤。
一個解決方案是凡是被include的檔案都保存為ANSI,主檔案可以是UTF-8。
要想把一個檔案去掉BOM,使用UlterEdit打開,切換到十六進制編輯模式,把最前面三個位元組(就是那該死的EFBBBF)替換為20,保存(注意關閉保存時自動備份的功能),再切換到默認編輯模式,把最前面的三個空格去掉就可以了。
編碼小知識另外還學到一些編碼的小知識:所謂的unicode保存的檔案實際上是utf-16,只不過恰好跟unicode的碼相同而已,但在概念上unicode與utf是兩回事,unicode是記憶體編碼表示方案,而utf是如何保存和傳輸unicode的方案。
utf-16還分高位在前(LE)和高位在後(BE)兩種。
官方的utf編碼還有utf-32,也分LE和BE。
非unicode官方的utf編碼還有utf-7,主要用於郵件傳輸。
utf-8的單位元組部分是和iso-8859-1兼容的,這主要是一些舊的系統和庫函式不能正確處理utf-16而被迫出來的,而且對英語字元來說,也節省保存的檔案空間(以非英語字元浪費空間為代價)。
在iso-8859-1的時候,utf8和iso-8859-1都是用一個位元組表示的,當表示其它字元的時候,utf-8會使用兩個或三個位元組。
相關詞條 Unicode簽名bom 計算機編程術語,BOM是ByteOrderMark的縮寫。
是UTF編碼方案里用於標識編碼的標準標記,在UTF-16里本來是FFFE,變成UT... 什麼是bom? 查看utf-8的方法 在php中套用時的問題和解決方案 編碼小知識 php編程技術 BOM,如果使用Session就會出現問題,可用editplus軟體來保存。
在這個軟體中,選擇工具?參數選擇?檔案?UTF-8簽名,選擇總是刪除,再保存就可以去掉BOM信息了。
3、PHP本身不是Unicode... 技術簡介 先進之處 發展歷史 學習過程 亂碼解決 相關搜尋簽名設計免費版印表機有損壓縮簽名牽命簽名設計簽名檔文學虔銘之愛的誓言多用途網際郵件擴展協定簽名章乾明寺[河南許昌市襄城縣乾明寺]搜狗拼音輸入法簽名買賣人進程文本修輯轉換器漢字輸入輸出Unicode簽名藝術西門子串列通信熱門詞條《星際精靈藍多多》中醫豐胸以團之名全部都給你冰與火之歌第三季出現天使花園妮琪·米娜安徒生徐餘偉惡魔遊戲愛屋及烏技嘉主機板申恩慶破壞獸紫米粥維摩詰經耶裡莉亞·迪桑蚍蜉撼樹金庸小說音樂符號鬼使神差麥門冬湯BlueStacksfocalHDTVPassbookUnionSquare人蔘茶天涯赤子心小倉怪怪水族箱武田信玄氬焊汽車電瓶港鐵滑板教學澠池之會紀念品鄉間小路鈉燈鋼鐵蒼穹麻油雞湯007:大破天幕殺機codaMPEG4中壢市寶蓮燈魚我的恐怖室友拉法埃爾·馬克斯熱泵Unicode簽名bom@百科知識中文網
延伸文章資訊
- 1「带BOM 的UTF-8」和「无BOM 的UTF-8」有什么区别?网页 ...
UTF-8 不需要BOM,尽管Unicode 标准允许在UTF-8 中使用BOM。 所以不含BOM 的UTF-8 才是标准形式,在UTF-8 文件中放置BOM 主要是微软的习惯(顺便提一下:把带...
- 2Unicode簽名bom:計算機編程術語 - 中文百科知識
計算機編程術語,BOM 是Byte Order Mark 的縮寫。是UTF編碼方案里用於標識編碼的標準標記,在UTF-16里本來是FF FE,變成UTF-8就成了EF BB BF。這個標記是可選...
- 3unicode-bom - Rules - ESLint中文文档
Unicode 字节顺序标记(BOM) 用来指定代码单元是高字节序还是低字节序。也就是说,是高位在前还是低位在前。UTF-8 不需要BOM 来表明字节顺序,因为单个字节并不影响字节 ...
- 4這些是什麼? BOM/UFT-8有簽章/withBOM/withoutBOM - iT 邦幫忙
這是另一篇關於BOM之亂的描述. Windows 作業系統不少程式(像是記事本),預設會對UTF-8 檔案加上BOM 而Linux 則避免 ...
- 5「帶BOM 的UTF-8」和「無BOM 的UTF-8」有什麼區別
utf-16才需要加bom。因為它是按unicode順序編碼,在BMP範圍內是二位元組,需要識別是大或小位元組序。