为了账号安全,请及时绑定邮箱和手机立即绑定

代码如下,结果在服务器端的文件夹下所上传的中文文件名出现乱码?求指点

代码如下,结果在服务器端的文件夹下所上传的中文文件名出现乱码?求指点

Smart猫小萌 2023-04-09 19:15:42
file_in = web.input(fh={}) filedir = 'upload'if 'fh' in file_in:     filename = file_in.fh.filename.decode('utf-8')     fout = open(filedir +'/'+ filename,'wb')     fout.write(file_in.fh.file.read())     fout.close()     return "上传成功!"
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

如果你是通过网页上传的,要保证 <meta charset="UTF-8" /> 也是 utf-8 编码的,py 文件也用相同的编码保存。
我运行了你的代码,没有发现乱码。不知道你指的乱码是哪一种:

  • 如果是方块的话就需要给服务器安装中文支持

  • 如果是杂乱的乱码,可能需要设置服务器的 locale


查看完整回答
反对 回复 2023-04-11
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

中文文件上传后会出现乱码情况,是因为中文编码默认为GBK,而Python中默认字符编码为unicode,需要把文件名的字符转一下, filename = filename.encode("gb2312"),加上这一句,就OK了

查看完整回答
反对 回复 2023-04-11
  • 2 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号