1

我提供用户输入数据。由于用户似乎做了很多复制/粘贴。我正面临解码错误。DjangoUnicodeDecodeError: ‘utf8’ codec can't decode byte 0×96 in position 22.

无论如何设置accept-charset="UTF-8"所有表单。由于所有表单主要由管理员生成,所以我应该覆盖管理员设置吗?

以后如何避免这些问题?我是否需要更改默认 AdminSite 或更改已拥有 100000 个用户的数据库?

4

1 回答 1

0

我不认为接受字符集是你的问题。默认情况下,所有表单都接受 UTF8 数据。检查处理输入数据的代码,以获取以下语句:

value = str(request.POST['user_input'])
value = 'prefix' + request.POST['user-input'] 
# instead of u'prefix' + request.POST['user-input']

这是一个常见的错误,将 str() 用于可能包含非 ASCII 符号的用户输入。还要检查您的 .py 文件是否保存为 UTF-8。上面的错误可能有很多原因......

于 2012-06-09T13:12:23.380 回答