UTF 8 without BOM - 程序員學院
文章推薦指數: 80 %
utf-8編碼的檔案有without bom和bom兩種格式,最好使用utf-8 without bom格式。
bom的含義. bom,即byte order mark,意為位元組序標記。
utf-8編碼的檔案中,bom佔三個 ...
UTF8withoutBOM
2021-10-0614:43:41字數1265閱讀2745
utf-8編碼的檔案有withoutbom和bom兩種格式,最好使用utf-8withoutbom格式。
bom的含義
bom,即byteordermark,意為位元組序標記。
utf-8編碼的檔案中,bom佔三個位元組。
如果用記事本把一個文字檔案另存為utf-8編碼方式的話,用ue開啟這個檔案,切換到十六進位制編輯狀態就可以看到開頭的fffe了,軟體通過bom來識別這個檔案是否是utf-8編碼。
bom的本意是在utf-16中用來表示高低位元組序列的。
在位元組流之前有bom表示採用低位元組序列(低位元組在前面),而utf-8不用考慮位元組序列,所以其實有無bom都可以。
使用bom產生的問題
utf-8以位元組為編碼單元,沒有位元組序的問題。
utf-16以兩個位元組為編碼單元,在解釋一個utf-16文字前,首先要弄清楚每個編碼單元的位元組序。
例如收到一個“奎”的unicode編碼是594e,“乙”的unicode編碼是4e59。
如果我們收到utf-16位元組流“594e”,那麼這是“奎”還是“乙”?
如果檔案儲存時,選擇了使用bom,那麼就可能會出現headersalreadysent的問題。
因為web伺服器軟體可能不認識bom,所以就把bom的兩個特殊位元組當做字元傳送給瀏覽器了。
這時再呼叫session_start()等函式,就會出現headersalreadysent的問題。
所以解決此問題最根本的方法就是在儲存utf-8編碼的檔案時,不要使用bom。
微軟的記事本,word等只能正確開啟含bom的utf8檔案,然而ultraedit卻恰恰相反,會把bomutf-8檔案誤認為ascii編碼。
utf-8的bom是efbbbf,因為ue載入utf-8檔案會轉成utf16,上述的efbbbf在utf16中是fffe(unicode-le的bom),ultraedit不認識bom又加多一個bom,所以有2個fffe。
檔案就被它破壞了。
當應用程式的檔案使用utf8編碼時,在儲存檔案時,一定要注意bom的問題。
那麼如何將utf8withoutbom轉換成utf8呢?
using(textreaderinput=
newstreamreader
(new
filestream
(@"c:\test.properties"
,filemode.open)
,encoding.utf8))
input.
close()
;}}微軟的記事本就是在utf-8檔案開頭加bom,所以最好不要用記事本來編輯utf-8檔案。
UTF8,無BOMbombyteordermarkutf8bom又叫utf8簽名其實utf8的bom對uft8沒有作用是為了支援ut...
UTF8帶BOM格式與UTF8無BOM格式轉換qt在windows下使用vs建立的工程檔案轉到linux環境下編譯報出大量錯誤,反過來也一樣,原來是編碼的問題。
vs採用utf8bo...
UTF8和UTF8BOM的問題問題情況為我在aaacom域下有一個aaaphp檔案,做一些處理,輸出一個id值在bbbcom域下bbbphp檔案通過cur請求...
相關推薦
utf8與utf8無BOM的區別
UTF8withBOM與UTF8相互轉換
XML跳過utf8的BOM
30UTF8BOM的問題
UTF8簽名(BOM)問題
相關推薦
關於utf8無bom編碼
關於utf8的BOM問題
談utf8文字中的BOM
UTF16轉UTF8的方法,防止檔案有BOM頭
UTF8BOM,feff位元組順序記號
UTF8中的BOM帶還是不帶?
UTF8中的BOM帶還是不帶?
phputf8編碼去bom小工具
批量去掉UTF8檔案中BOM標示符
utf8UTF8和utf8區別
相關閱讀
20200528
迴圈方法變數預設值
CSS3元素居中
UTF8withoutBOM
LCP01猜數字
localStorage寫註冊登入頁面
topic
科技
教育
python
社會
linux
數碼
java
c++
遊戲
演算法
健康
資料庫
文化
mysql
汽車
娛樂
科學
財經
資料結構
C語言
職場
php
C
oracle
作業系統
c#
工作
體育
網路
sql
延伸文章資訊
- 1How do I save file in UTF-8 without BOM - HESK.com
- 2关于Encode in UTF-8 without BOM_绯浅yousa的博客
关于Encode in UTF-8 without BOM定义BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的 ...
- 3What's the difference between UTF-8 and UTF-8 with BOM?
- 4Remove byte-order mark from the beginning of the file
- 5「带BOM 的UTF-8」和「无BOM 的UTF-8」有什么区别?网页 ...
While there is obviously no need for a byte order signature when using UTF-8, there are occasions...