utf8與utf8 bom的區別

2021-08-26 07:08:46 字數 511 閱讀 6691

utf8與utf8+bom的區別

首先建立檔案1.txt,2.txt,其次利用vim修改2.txt的編碼格式為utf8+bom

'去掉utf-8 bom

:set nobomb

'保留utf-8 bom

:set bomb

最後利用vim+xxd顯示文字的十六進製制表示

在vim的命令狀態下,

:%!xxd 將當前的文字轉換為16進製制。大端法

:%!od 將當前的文字轉換為8進製。

:%!xxd -r將當前的文字轉換回文字格式。

:%!hexdump將當前的文字轉換回16進製制,小端法顯示。

注:小端法可以理解的記憶體顯示模式(不準確)。大端法可以理解為實際模式。

%表示檔案的所有行,!xxd表示外部命令,結合在一起,就是當把當前vim上顯示的所有的行傳遞給xxd,xxd處理後的結果重新顯示在vim上。

如下圖,2.txt中採用utf8+bom編碼,檢視它的十六進製制發現它是以efbb bf開頭的位元組流。

utf 8與utf 8 bom的區別

在utf 8編碼檔案中bom在檔案頭部,占用三個位元組,用來標識該檔案屬於utf 8編碼,現在已經有很多軟體識別bom頭,但還是有些不能識別bom頭,比如php就不能識別bom頭,這也就是用記事本編輯utf 8編碼的php檔案後,就會報錯的原因。在windows環境下,用記事本開啟任何乙個文字檔案,...

utf 8與utf 8無BOM的區別

utf 8 8 bit unicode transformation format 是一種針對unicode的可變長度字元編碼,又稱萬國碼。bom byte order mark,位元組序標記 utf 8不需要bom來表明位元組順序,但可以用bom來表明編碼方式。字元 zero width no b...

utf 8與utf 8 無BOM 的區別

bom byte order mark utf 8 bom又叫 utf 8 簽名,其實 utf 8 的bom對uft 8沒有作用,是為了支援utf 16,utf 32才加上的bom,bom簽名的意思就是告訴編輯器當前檔案採用何種編碼,方便編輯器識別,但是bom雖然在編輯器中不顯示,但是會產生輸出,就...