Kru*_*lur 6 python sqlite django pysqlite
我有一个django项目,它使用可以由外部工具写入的sqlite数据库.该文本应该是UTF-8,但在某些情况下,编码会出错.文本来自外部源,因此我无法控制编码.是的,我知道我可以在外部源和数据库之间写一个"包装层",但我不想这样做,特别是因为数据库已经包含了很多"坏"数据.
sqlite中的解决方案是将text_factory更改为:
lambda x: unicode(x, "utf-8", "ignore")
但是,我不知道如何告诉Django模型驱动程序.
我得到的例外是:
'Could not decode to UTF-8 column 'Text' with text'
in
/var/lib/python-support/python2.5/django/db/backends/sqlite3/base.py in execute
不知怎的,我需要告诉sqlite驱动程序不要尝试将文本解码为UTF-8(至少不使用标准算法,但它需要使用我的故障安全变体).
sqlite中的解决方案是将text_factory更改为:lambda x:unicode(x,"utf-8","ignore")
但是,我不知道如何告诉Django模型驱动程序.
你有没有尝试过
from django.db import connection
connection.connection.text_factory = lambda x: unicode(x, "utf-8", "ignore")
Run Code Online (Sandbox Code Playgroud)
在运行任何查询之前?
| 归档时间: |
|
| 查看次数: |
3824 次 |
| 最近记录: |