第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在Python中使用BOM字符讀取Unicode文件數(shù)據(jù)

在Python中使用BOM字符讀取Unicode文件數(shù)據(jù)

ibeautiful 2019-10-18 14:38:46
我正在使用Python閱讀一系列源代碼文件,并遇到Unicode BOM錯(cuò)誤。這是我的代碼:bytes = min(32, os.path.getsize(filename))raw = open(filename, 'rb').read(bytes)result = chardet.detect(raw)encoding = result['encoding']infile = open(filename, mode, encoding=encoding)data = infile.read()infile.close()print(data)如您所見,我正在使用檢測(cè)代碼chardet,然后讀取內(nèi)存中的文件并嘗試打印。對(duì)于包含BOM表的Unicode文件,print語句失敗,并顯示以下錯(cuò)誤:UnicodeEncodeError:'charmap'編解碼器無法對(duì)位置0-2中的字符進(jìn)行編碼:字符映射為<undefined>我猜想它正在嘗試使用默認(rèn)字符集對(duì)BOM進(jìn)行解碼,但是失敗了。如何從字符串中刪除BOM表以防止這種情況?
查看完整描述

3 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

沒有理由檢查BOM是否存在utf-8-sig,為您管理utf-8該BOM 并表現(xiàn)出與BOM不存在完全相同的行為:


# Standard UTF-8 without BOM

>>> b'hello'.decode('utf-8')

'hello'

>>> b'hello'.decode('utf-8-sig')

'hello'


# BOM encoded UTF-8

>>> b'\xef\xbb\xbfhello'.decode('utf-8')

'\ufeffhello'

>>> b'\xef\xbb\xbfhello'.decode('utf-8-sig')

'hello'

在上面的示例中,utf-8-sig無論BOM是否存在,您都可以正確解碼給定的字符串。如果您認(rèn)為正在讀取的文件中極有可能存在BOM字符,則只需使用utf-8-sig而不必?fù)?dān)心


查看完整回答
反對(duì) 回復(fù) 2019-10-18
  • 3 回答
  • 0 關(guān)注
  • 587 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)