0

我的 Django 应用程序使用的数据库在执行任何编码规则时都非常松懈。当有人在数据库中存储类似 emdash 的内容(在 Windows-1252 字符集中为 0x97)时,这会导致问题。当我的 Django 应用程序尝试加载该数据并将其呈现为 utf-8 时,它会引发 DjangoUnicodeDecodeError,因为 0x97 不是有效的 utf-8 字节序列(它似乎是一个延续指令)。

有没有人有一个聪明的方法来捕捉这些错误并修复它们?该数据库接受来自各种不同应用程序的数据,所以我不能确定它们是否会很好,并且只在其中放入合理的东西。

4

1 回答 1

0

确保您的数据库排序规则和字符集支持您计划或允许使用的字符。例如,在 MySQL 中,您需要以下内容:

CREATE DATABASE `mydb`
    DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci;

有关如何在 MySQL 中更改排序规则和字符集的更多详细信息如下:

http://dev.mysql.com/doc/refman/5.0/en/charset-database.html http://dev.mysql.com/doc/refman/5.1/en/alter-database.html

于 2012-06-28T20:47:22.420 回答