什麼是BOM(Byte-order mark)? - 程式隨筆
文章推薦指數: 80 %
位元組順序記號(英語:byte-order mark,BOM)是位於碼點 U+FEFF 的統一碼字元的名稱。
當以UTF-16或UTF-32來將UCS/統一碼字元所組成的字串編碼時, ...
0%
最近開發了一支收集資訊然後將資料轉成Json檔案給其它單位讀取,但收到對口單位回報Json格式不正確。
但我將檔案內容貼到線上的Json解析網站,或是自己肉眼判斷都覺得格式沒問題,所以執行了一次對方的解析程式,錯誤訊息如下。
在字串0的位置有錯誤
打開我提供的檔案,字串0也就是最前面感覺很正常…
接著我將這段錯誤訊息貼Notepad++,轉成Hex碼來看看究竟是藏了什麼東西
#什麼是BOM把efbbbf拿去Google最後查到了Wiki-位元組順序記號
節錄Wiki位元組順序記號(英語:byte-ordermark,BOM)是位於碼點U+FEFF的統一碼字元的名稱。
當以UTF-16或UTF-32來將UCS/統一碼字元所組成的字串編碼時,這個字元被用來標示其位元組序。
它常被用來當做標示檔案是以UTF-8、UTF-16或UTF-32編碼的記號。
#解法而會塞入位元組序是因為在寫檔案時這樣指定編碼
123456using(StreamWriterfile=newStreamWriter( newFileStream(path,FileMode.OpenOrCreate,FileAccess.Write),Encoding.UTF8)){ .....}
只要將寫改改成newUTF8Encoding(false)即可
123456using(StreamWriterfile=newStreamWriter(newFileStream(path,FileMode.OpenOrCreate,FileAccess.Write),newUTF8Encoding(false))){.....}
TableofContents
Overview
1.#什麼是BOM2.#解法
Toyo
202
posts
6
categories
74
tags
延伸文章資訊
- 1Byte order mark - Wikipedia
The byte order mark (BOM) is a particular usage of the special Unicode character, U+FEFF BYTE ORD...
- 2什麼是BOM(Byte-order mark)? - 程式隨筆
位元組順序記號(英語:byte-order mark,BOM)是位於碼點 U+FEFF 的統一碼字元的名稱。當以UTF-16或UTF-32來將UCS/統一碼字元所組成的字串編碼時, ...
- 3The byte-order mark (BOM) in HTML - W3C
Each 2-digit hexadecimal number represents a byte in the stream of text. You can see that the ord...
- 4What is a Byte Order Mark (BOM)? - Definition from Techopedia
The byte order mark (BOM) is a piece of information used to signify that a text file employs Unic...
- 5位元組順序記號 - 维基百科
位元組順序記號(英語:byte-order mark,BOM)是位於碼點 U+FEFF 的統一碼字符的名称。當以UTF-16或UTF-32來將UCS/統一碼字符所組成的字串編碼時,這個字符被用來...