Python-UnicodeDecodeError:“ utf8”编解码器无法解码字节0x9c

发布于 2021-02-02 23:14:29

我有一个套接字服务器,应该从客户端接收UTF-8有效字符。

问题是某些客户端(主要是黑客)正在通过它发送所有错误的数据。

我可以轻松地区分真正的客户端,但是我会将所有发送的数据记录到文件中,以便以后进行分析。

有时我会收到这样的字符œ,从而导致UnicodeDecodeError错误。

我需要使字符串UTF-8带有或不带有这些字符。

更新:

对于我的特殊情况,套接字服务是MTA,因此我只希望接收ASCII命令,例如:

EHLO example.com
MAIL FROM: <john.doe@example.com>
...

我将所有这些都记录在JSON中。

然后,一些没有好主意的人决定出售各种垃圾。

这就是为什么对于我的特定情况,完全可以剥离非ASCII字符。

关注者
0
被浏览
145
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    http://docs.python.org/howto/unicode.html#the-unicode-type

    str = unicode(str, errors='replace')
    

    要么

    str = unicode(str, errors='ignore')
    

    注意: 这将删除(忽略)有问题的字符,并返回不包含这些字符的字符串。

    对我来说,这是理想的情况,因为我将其用作针对非ASCII输入的保护,这是我的应用程序所不允许的。

    或者:使用codecs模块中的open方法读取文件:

    import codecs
    with codecs.open(file_name, 'r', encoding='utf-8',
                     errors='ignore') as fdata:
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看