UTF 8 without BOM - 程序員學院

文章推薦指數: 80 %
投票人數:10人

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



請為這篇文章評分?