慕工程0101907
2023-11-09 10:13:23
我是Python的初學(xué)者,我想讀取多個(gè)csv文件,當(dāng)我用 對(duì)其進(jìn)行編碼時(shí) encoding = "ISO-8859-1",我在我的csv文件中得到這種字符:“Da°faut”。所以我嘗試編碼utf-8,出現(xiàn)此錯(cuò)誤:“utf-8”編解碼器無法解碼位置 14 中的字節(jié) 0xb0:無效的起始字節(jié)。有人能幫助我嗎 ?謝謝 !
1 回答

小怪獸愛吃肉
TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
如果您使用 utf-8 解碼,您也應(yīng)該使用 utf-8 編碼。根據(jù)您想要顯示的 unicode 字符(基本上除了基本拉丁字母、數(shù)字和常用符號(hào)之外的所有字符),utf-8 需要多個(gè)字節(jié)來存儲(chǔ)它。由于文件是逐字節(jié)讀取的,因此您需要知道下一個(gè)字符是否需要超過一個(gè)字節(jié)。這由字節(jié)的最高有效位指示。0xb0 轉(zhuǎn)換為二進(jìn)制的 1011 0000,如您所見,第一位是 1,這告訴 utf-8 解碼器需要更多字節(jié)來讀取字符。由于您使用 iso-8859-1 進(jìn)行編碼,因此以下字節(jié)將成為當(dāng)前字符的一部分,并且編碼失敗。如果要對(duì)度數(shù)符號(hào)(°)進(jìn)行編碼,則將其編碼為0xC2 0xB0。
無論如何:始終使用與要解碼相同的編碼進(jìn)行編碼。如果需要代碼頁之外的字符,請(qǐng)使用 utf-8。一般來說,使用任何 utf 編碼都是一個(gè)很好的建議。
添加回答
舉報(bào)
0/150
提交
取消