開發時,遇到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的中文,叫簽章.
NotePad++