【问题标题】:Python script for outputting vertical rectangles用于输出垂直矩形的 Python 脚本
【发布时间】:2014-10-25 00:01:06
【问题描述】:

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

![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

任何帮助将不胜感激!

【问题讨论】:

标签: python utf-8 fonts


【解决方案1】:

你这样做:

>>> 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。仍然不是那么好,所以最后的手段是使用蛮力,并依次尝试每个可用的编解码器(有关它们的列表,请参见上面的链接)。

【讨论】:

  • 最初的形式是一条红鲱鱼。如果 OP 复制并粘贴那些“奇怪的矩形”并试图通过搜索它们来识别具有模糊编码的文件,它将让他无处可去。
猜你喜欢
  • 1970-01-01
  • 2014-06-09
  • 2017-04-13
  • 2021-12-28
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 2018-04-02
  • 2019-08-16
相关资源
最近更新 更多