pickle unicode字符串与非ascii字符到django中的mysql

时间:2013-06-07 06:09:18

标签: python django encoding django-models pickle

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

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

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

我挑了一个你''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吗?因为为了做到这一点我必须更改数据库,所以最好先确定...

1 个答案:

答案 0 :(得分:0)

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