Django 中的 UnicodeEncodeError python3
UnicodeEncodeError in django python3
我要处理访客上传的文件,这里是查看代码:
def charset(request):
logging.info('charset')
name = request.GET['name']
file_path = os.path.join(settings.MEDIA_ROOT, name)
logging.info(file_path)
logging.info(type(file_path))
file1 = open(file_path.decode('utf8'), 'wb')
file1.write(b'test')
file1.close()
return HttpResponse('success')
但是发生错误。追溯如下:
UnicodeEncodeError at /upload/charset/
'ascii' codec can't encode characters in position 27-28: ordinal not in range(128)
您可以通过访问重复错误:My Wrong Website
我使用的环境如下:
python 3.4.3
django 1.9.3
apache2 2.4.7
但是当我 运行 服务器使用 python3 manage.py runserver 0.0.0.0:8000
时。有效。
我怎样才能解决这个问题?感谢您的关注。可以在网站github_of_my_django_tutorial.
查看项目代码
您需要先将文件名编码为UTF-8:
name = name.encode("utf8")
我要处理访客上传的文件,这里是查看代码:
def charset(request):
logging.info('charset')
name = request.GET['name']
file_path = os.path.join(settings.MEDIA_ROOT, name)
logging.info(file_path)
logging.info(type(file_path))
file1 = open(file_path.decode('utf8'), 'wb')
file1.write(b'test')
file1.close()
return HttpResponse('success')
但是发生错误。追溯如下:
UnicodeEncodeError at /upload/charset/
'ascii' codec can't encode characters in position 27-28: ordinal not in range(128)
您可以通过访问重复错误:My Wrong Website
我使用的环境如下:
python 3.4.3
django 1.9.3
apache2 2.4.7
但是当我 运行 服务器使用 python3 manage.py runserver 0.0.0.0:8000
时。有效。
我怎样才能解决这个问题?感谢您的关注。可以在网站github_of_my_django_tutorial.
您需要先将文件名编码为UTF-8:
name = name.encode("utf8")