【问题标题】:Django storing non-unicode dataDjango 存储非 unicode 数据
【发布时间】:2012-03-04 10:03:27
【问题描述】:

我正在尝试使用 Django 将 IP 数据包有效负载存储在 PostgreSQL 数据库中。

目前,我正在将有效负载故事化为 CharField。

我收到此错误:

django.db.utils.DatabaseError: invalid byte sequence for encoding "UTF8": 0xedbc93
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".

有什么方法可以妥善存储这些数据吗?我可以在没有错误的情况下执行str(packet.payload),但是当 Django 尝试保存对象时,它会引发编码错误。字节串似乎是显而易见的解决方案,但 Django 似乎不支持。

【问题讨论】:

    标签: python django postgresql unicode utf-8


    【解决方案1】:

    如果你想存储任意字节串,你应该这样声明它们。许多(大多数?)字节序列不是有效的 UTF-8,因此它不是存储它们的好方法。 CharField 是用来存储文本的,你没有文本。

    这个问题的答案可能会有所帮助:Django Blob Model Field

    【讨论】:

    • 他说了什么。 IP 数据包有效负载是二进制 blob。它既不是字符串也不是 Unicode。即使协议是 100% Unicode 文本,数据包负载也可能是无效的 Unicode。
    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多