簡體   English   中英

在Django中將帶有非ASCII字符的腌制unicode字符串轉換為mysql

[英]pickle unicode strings with non-ascii caracters to mysql in django

考慮一下我有一個要使用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)

我應該在使用二進制的協議中使用二進制字段和泡菜嗎? 因為我必須更改數據庫才能執行此操作,所以最好先確定一下...

您應該檢查數據庫后端中的表AND列是否使用了正確的編碼(我假設是MySQL,因為您的錯誤消息似乎來自它)。 在MySQL中,列的編碼可以與表不同。 看看是否是UTF-8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM