用于输出垂直矩形的Python脚本

时间:2014-08-31 17:04:40

标签: python utf-8 fonts

我正在尝试开发一个脚本来检测记事本文件中矩形的那些奇怪的垂直。我指的是你在下图中可以看到的内容:

![Vertical Rect][1]

我确实尝试了.encode(“utf-8”)函数以及utf-18和utf-32来尝试使字体可读,但每次尝试都收到以下错误消息:

Traceback (most recent call last):   File "<interactive input>", line
1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte
0xef in position 10: ordinal not in range(128)

您建议我尝试使用其他广泛的编码格式吗?然而,仅仅能够在记事本TXT文件中或在终端中输出那些垂直矩形也是完全可以接受的。但是,在执行此操作时,我收到以下错误消息:

'charmap' codec can't encode characters in position 17-23: character maps to undefined

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

你是这样做的:

>>> import codecs
>>> codecs.decode(b"\xfe\xfe\xff\xff", "utf-8", "replace")
'����'

将其与:

进行比较
>>> codecs.decode(b"\xfe\xfe\xff\xff", "utf-8")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.4/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 0: invalid start byte

您可以通过注册自定义编解码器来获得对数据解码的更多控制,请参阅codecs documentation

如果想要猜测字符串编码以正确输出,请使用chardet package。它仍然没那么好,所以最后的办法是使用蛮力,并依次尝试每个可用的编解码器(有关它们的列表,请参阅上面的链接)。