亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中將沒有BOM的UTF-8轉換為帶有BOM的UTF-8

在Python中將沒有BOM的UTF-8轉換為帶有BOM的UTF-8

慕工程0101907 2019-10-17 15:03:50
這里有兩個問題。我有一組通常是帶有BOM的UTF-8文件。我想將它們(理想情況下)轉換為沒有BOM的UTF-8。似乎codecs.StreamRecoder(stream, encode, decode, Reader, Writer, errors)可以解決這個問題。但是我真的看不到任何有關用法的好例子。這將是處理此問題的最佳方法嗎?source files:Tue Jan 17$ file brh-m-157.json brh-m-157.json: UTF-8 Unicode (with BOM) text同樣,如果我們能夠處理清楚知道的不同輸入編碼(看到的ASCII和UTF-16),那將是理想的??磥磉@一切都是可行的。是否有一種解決方案可以采用任何已知的Python編碼并以UTF-8格式輸出而無需BOM?從下面編輯1個建議的sol'n(謝謝!)fp = open('brh-m-157.json','rw')s = fp.read()u = s.decode('utf-8-sig')s = u.encode('utf-8')print fp.encoding  fp.write(s)這給了我以下錯誤:IOError: [Errno 9] Bad file descriptor新聞快訊有人在評論中告訴我,錯誤是我以'rw'模式而不是'r +'/'r + b'模式打開文件,因此我最終應重新編輯問題并刪除已解決的部分。
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

在Python 3中,這非常簡單:讀取文件并使用utf-8編碼重寫:


s = open(bom_file, mode='r', encoding='utf-8-sig').read()

open(bom_file, mode='w', encoding='utf-8').write(s)


查看完整回答
反對 回復 2019-10-17
  • 3 回答
  • 0 關注
  • 2664 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號