python去掉BOM頭的方法

2022-09-17 19:03:11 字數 661 閱讀 3244

今天在寫批量*****號造資料的時候出現了問題,其中乙個是報不能轉成int型,後經查詢,發現是utf-8bom頭的問題。

什麼是bom?

在utf-8編碼檔案中bom在檔案頭部,占用三個位元組,用來標示該檔案屬於utf-8編碼。其實utf-8 的bom對uft-8沒有作用,是為了支援utf-16,utf-32才加上的bom,bom簽名的意思就是告訴編輯器當前檔案採用何種編碼,方便編輯器識別,但是bom雖然在編輯器中不顯示,但是會產生輸出,就像多了乙個空行。

類似windows自帶的記事本等軟體,在儲存乙個以utf-8編碼的檔案時,會在檔案開始的地方插入三個不可見的字元(0xef 0xbb 0xbf,即bom)。它是一串隱藏的字元,用於讓記事本等編輯器識別這個檔案是否以utf-8編碼。

當在讀txt時一旦讀到bom頭就會報錯。

處理方法如下:

import

codecs

with open(file_path, "r

") as file:

data =file.read()

data = data.replace(codecs.bom_utf8, ""

) districtlist = data.split('\n'

) file.closed

PHP去除BOM頭的方法

但是php在設計之初並沒有考慮到bom頭的問題,所以在編譯碼的時候很容易出現問題 比如今天遇到的問題,json decode,當解碼的string有bom頭的時候json decode就解析失敗,返回null。為什麼不自動檢測並去除bom頭呢。小吐槽 試了兩種方式能去除掉 1 2 3 result ...

PHP去除BOM頭的方法

bom頭是utf 8來告訴編輯器 我是utf8編碼。它的編碼是 xef xbb xbf 但是php在設計之初並沒有考慮到bom頭的問題,所以在編譯碼的時候很容易出現問題 比如今天遇到的問題,json decode,當解碼的string有bom頭的時候json decode就解析失敗,返回null。為...

PHP去除BOM頭的方法

但是php在設計之初並沒有考慮到bom頭的問題,所以在編譯碼的時候很容易出現問題 比如今天遇到的問題,json decode,當解碼的string有bom頭的時候json decode就解析失敗,返回null。為什麼不自動檢測並去除bom頭呢。小吐槽 試了兩種方式能去除掉 12 3 result t...