iT邦幫忙

0

這些是什麼? BOM/UFT-8有簽章/withBOM/withoutBOM

  • 分享至 

  • xImage
  •  

開發時,遇到GridView匯成EXCEL,EXCEL打開,中文都亂碼.
大大們說是因為沒有BOM,用stream指定個字碼,就能加上BOM就OK了.

但什麼是BOM啊?
可以看這篇,寫的好懂,又清楚(大推)
先介紹3種編碼,還有BE與LE的差別
再介紹為什麼需要BOM.
再介紹萬惡的BOM是怎麼回事.

這是另一篇關於BOM之亂的描述.
Windows 作業系統不少程式(像是記事本),預設會對 UTF-8 檔案加上 BOM
而 Linux 則避免妨礙到像是解譯器腳本而不加 BOM,對於沒有預期要處理 BOM 的 Linux 程式而言,會造成讀取錯誤,這也是跨平台常遇到的事情之一。

看完上面的文章,再來看以下的維基百科說明,是不是就有點懂了.哈

BOM
位元組順序記號(英語:byte-order mark,BOM)是位於碼點U+FEFF的統一碼字元的名稱。當以UTF-16或UTF-32來將UCS/統一碼字元所組成的字串編碼時,這個字元被用來標示其位元組序。它常被用來當做標示檔案是以UTF-8、UTF-16或UTF-32編碼的記號。資料擷取自維基百科


而且它其實就在我們身邊.
Visual Studio 另存新檔,字碼裡,就有它,BOM的中文,叫簽章.
https://ithelp.ithome.com.tw/upload/images/20190927/20106764BtdfSe2GGM.png
https://ithelp.ithome.com.tw/upload/images/20190927/20106764in1SF7MDqT.png
NotePad++
https://ithelp.ithome.com.tw/upload/images/20190927/20106764AxfYW9UPgd.png


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言