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")