web.py 上传中文文件名乱码

发布于 2022-08-24 01:16:12 字数 298 浏览 10 评论 0

代码如下,结果在服务器端的文件夹下所上传的中文文件名出现乱码。请教~

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 "上传成功!"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

生寂 2022-08-31 01:16:12

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

  • 如果是方块的话就需要给服务器安装中文支持
  • 如果是杂乱的乱码,可能需要设置服务器的 locale
素染倾城色 2022-08-31 01:16:12

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文