我的 Django 应用程序使用的数据库在执行任何编码规则时都非常松懈。当有人在数据库中存储类似 emdash 的内容(在 Windows-1252 字符集中为 0x97)时,这会导致问题。当我的 Django 应用程序尝试加载该数据并将其呈现为 utf-8 时,它会引发 DjangoUnicodeDecodeError,因为 0x97 不是有效的 utf-8 字节序列(它似乎是一个延续指令)。
有没有人有一个聪明的方法来捕捉这些错误并修复它们?该数据库接受来自各种不同应用程序的数据,所以我不能确定它们是否会很好,并且只在其中放入合理的东西。