当我尝试发布 utf-8 字符串(例如中文字符串)时,我遇到了 django 总是返回“500 内部服务器错误”的问题。但我尝试发布一个ascii字符串,看起来没问题。此外,它在我自己的 Archlinux 机器上运行正常,但在其他 CentOS 服务器上无法运行。如何避免这个问题?
模板:
$(".palcesubm").click(function(){
var location = $('#detail_address').val()
$.post('/wechat/locate/select/create/',
{'location':location}, function(){
window.location = "/wechat/locate/baidu/";
})
});
查看:
@csrf_exempt
def create_location(request):
if request.method == 'GET':
return render_to_response('create_location.html')
else:
print request.POST.get('location')
request.session['location'] = request.POST.get('location')
return HttpResponse('success')
最佳答案
您可能会收到 UnicodeEncodeError 因为
request.POST.get('location')
返回一个 unicode 对象。当您尝试打印它时,Python 尝试使用“ascii”编解码器对其进行编码,但由于它包含非 ascii 字符而失败。
如果您确实想打印它,请使用:
print request.POST.get('location').encode('utf-8')
编辑:有关 Python 中编码的更多信息:https://docs.python.org/2/howto/unicode.html
关于jquery - 当 $.post utf-8 字符串时,Django 返回 "500 INTERNAL SERVER ERROR",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26563222/