溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Unicode簽名bom如何分析

發(fā)布時(shí)間:2022-01-12 13:38:05 來源:億速云 閱讀:98 作者:柒染 欄目:移動(dòng)開發(fā)

Unicode簽名bom如何分析,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

Unicode簽名bom-什么是bom?
BOM 是 Byte Order Mark 的縮寫。是UTF編碼方案里用于標(biāo)識(shí)編碼的標(biāo)準(zhǔn)標(biāo)記,在UTF-16里本來是FF FE,變成UTF-8就成了EF BB BF。這個(gè)標(biāo)記是可選的,因?yàn)閁TF8字節(jié)沒有順序,所以它可以被用來檢測(cè)一個(gè)字節(jié)流是否是UTF-8編碼的。微軟做這種檢測(cè),但有些軟件不做這種檢測(cè),而把它當(dāng)作正常字符處理。

微軟在自己的UTF-8格式的文本文件之前加上了EF BB BF三個(gè)字節(jié),windows上面的notepad等程序就是根據(jù)這三個(gè)字節(jié)來確定一個(gè)文本文件是ASCII的還是UTF-8的,然而這個(gè)只是微軟暗自作的標(biāo)記,其它平臺(tái)上并沒有對(duì)UTF-8文本文件做個(gè)這樣的標(biāo)記。

Unicode簽名bom-查看utf-8的方法

也就是說一個(gè)UTF-8文件可能有BOM,也可能沒有BOM,那么怎么區(qū)分呢?
四種方法。
1,用UltraEdit-32打開文件,切換到十六進(jìn)制編輯模式,察看文件頭部是否有EF BB BF。
2,用Dreamweaver打開,察看頁面屬性,看“包括Unicode簽名BOM”前面是否有個(gè)勾。
3,用Windows的記事本打開,選擇“另存為”,看文件的默認(rèn)編碼是UTF-8還是ANSI,如果是ANSI則不帶BOM。

Unicode簽名bom如何分析Unicode簽名bom


4:用emeditor打開,選擇“另存為”,看編碼下面的
添加 unicode  簽名(bom)(G)是否勾選。如圖:

 Unicode簽名bom-在php中應(yīng)用時(shí)的問題和解決方案

注意用Convertz把gb2312文件轉(zhuǎn)換成UTF-8文件時(shí),默認(rèn)設(shè)置是不帶BOM的。不帶BOM可能出現(xiàn)上述亂碼問題,但是帶BOM,對(duì)于php的include文件要小心,會(huì)在php字節(jié)流前面多出EFBBBF,提前輸出到顯示器有可能會(huì)帶來程序錯(cuò)誤。一個(gè)解決方案是凡是被include的文件都保存為ANSI,主文件可以是UTF-8。要想把一個(gè)文件去掉BOM,使用UlterEdit打開,切換到十六進(jìn)制編輯模式,把最前面三個(gè)字節(jié)(就是那該死的EFBBBF)替換為20,保存(注意關(guān)閉保存時(shí)自動(dòng)備份的功能),再切換到默認(rèn)編輯模式,把最前面的三個(gè)空格去掉就可以了。

Unicode簽名bom-編碼小知識(shí)

另外還學(xué)到一些編碼的小知識(shí):所謂的unicode保存的文件實(shí)際上是utf-16,只不過恰好跟unicode的碼相同而已,但在概念上unicode與utf是兩回事,unicode是內(nèi)存編碼表示方案,而utf是如何保存和傳輸unicode的方案。utf-16還分高位在前(LE)和高位在后(BE)兩種。官方的utf編碼還有utf-32,也分LE和BE。非unicode官方的utf編碼還有utf-7,主要用于郵件傳輸。utf-8的單字節(jié)部分是和iso-8859-1兼容的,這主要是一些舊的系統(tǒng)和庫(kù)函數(shù)不能正確處理utf-16而被迫出來的,而且對(duì)英語字符來說,也節(jié)省保存的文件空間(以非英語字符浪費(fèi)空間為代價(jià))。在iso-8859-1的時(shí)候,utf8和iso-8859-1都是用一個(gè)字節(jié)表示的,當(dāng)表示其它字符的時(shí)候,utf-8會(huì)使用兩個(gè)或三個(gè)字節(jié)。

看完上述內(nèi)容,你們掌握Unicode簽名bom如何分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI