Django存储非Unicode数据
我正在尝试用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试图保存这个对象时,就出现了编码错误。用字节字符串(bytestring)似乎是个明显的解决办法,但看起来Django不支持这个。
1 个回答
4
如果你想存储任意的字节串,应该把它们声明为字节串。很多(甚至大多数)字节序列并不是有效的UTF-8编码,所以用UTF-8来存储它们并不是个好主意。CharField是用来存储文本的,而你这里并没有文本。
这个问题的答案可能会对你有帮助:Django Blob模型字段