
在Windows-1252(aka cp1252)中未分配位置0x81。它在Latin-1(aka ISO 8859-1)中分配给U + 0081 HIGH
OCTET PRESET(HOP)控制字符。我可以像这样在Python 3.1中重现您的错误:
>>> b'x81'.depre('cp1252')Traceback (most recent call last): ...UnipreDepreError: 'charmap' prec can't depre byte 0x81 in position 0: character maps to <undefined>或带有实际文件:
>>> open('test.txt', 'wb').write(b'x81n')2>>> open('test.txt').read()Traceback (most recent call last): ...UnipreDepreError: 'utf8' prec can't depre byte 0x81 in position 0: unexpected pre byte现在将此文件视为Latin-1,您可以传递
encoding参数,例如preape建议:
>>> open('test.txt', encoding='latin-1').read()'x81n'注意Windows-1257和Latin-1编码之间存在差异,例如Latin-1没有“智能引号”。如果您正在处理的文件是文本文件,请问自己x81在其中执行的 *** 作。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)