python - web.py 上传中文文件名乱码
大家讲道理
大家讲道理 2017-04-17 10:57:27
[Python讨论组]

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

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)
巴扎黑

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

  • 如果是方块的话就需要给服务器安装中文支持
  • 如果是杂乱的乱码,可能需要设置服务器的 locale
PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号