0

考虑一下我有一本字典,我想使用 python 的 pickle 将其存储在 db 中。

我的问题是:我应该使用哪个 django 模型的字段?

到目前为止,我一直在使用 CharField,但似乎有一个错误:

我腌制一个 u'\xe9' (即'É'),我得到:

Incorrect string value: '\xE1, ist...' for column 'edition' at row 1

(“ist ...”是因为我在“É”之后有更多文字)。

我在用着

data = dict();
data['foo'] = input_that_has_the_caracter
to_save_in_db = cPickle.dumps(data)

我应该使用二进制字段和使用二进制协议的pickle吗?因为我必须更改数据库才能做到这一点,所以最好先确定......

4

1 回答 1

0

您应该检查您是否在数据库后端中为您的表和列使用了正确的编码(我假设 MySQL,因为您的错误消息似乎来自它)。在 MySQL 中,列可以具有与表不同的编码。看看是不是UTF-8。

于 2013-06-07T07:04:09.623 回答