我提供用户输入数据。因为用户似乎做了大量的复制/粘贴。我正面临解码错误。 DjangoUnicodeDecodeError: ‘utf8’ codec can't decode byte 0×96 in position 22
。
无论如何都要将accept-charset="UTF-8"
设置为所有表单。由于所有表单主要由管理员生成,所以我应该覆盖管理员设置吗?
将来如何避免这些问题?我是否需要更改默认的AdminSite或对已有100000个用户的数据库进行更改?
答案 0 :(得分:0)
我不认为接受字符集是你的问题。默认情况下,所有表单都接受UTF8数据。 检查代码处理输入数据的代码,例如:
value = str(request.POST['user_input'])
value = 'prefix' + request.POST['user-input']
# instead of u'prefix' + request.POST['user-input']
对于可能包含非ASCII符号的用户输入,使用str()是一个常见的错误。 还要检查.py文件是否保存为UTF-8。上面的错误可能有很多原因......