上传中文文件名文件- Linux 存储并本地 shell 等处理文件-回显文件名列表-按原文件名下载文件 的需求中,最优雅的编解码方式是什么?

查看 36|回复 1
作者:matepi   
需求:
Steps
1) 用户通过浏览器上传文件至 linux 服务器,需支持原文件名带中文文件名,列表回显至用户
2) 文件在 linux 服务器上存储后,自动触发,通过 shell 脚本作为入口,进行文件的处理
3) 用户可以再浏览器上,看到已处理完成的原文件名+".result.txt"的文件,进一步下载回用户本地
问题:
直接上传文件名至服务器端,可能因 linux 服务器本地编码不同等原因直接就中文->??了。在需支持各种服务器编码情况下,进行中文文件名的编码是必须的。
但,哪种编码为最优? BASE64 ? HTML entity ?或其他?
BASE64 应该可以在 http 下载 http head 中,被浏览器下载文件过程中直接解码;
而 HTML entity 可以在浏览器页面回显中,被浏览器页面渲染直接解码;
同时这两种编码是否在 linux shell 调用过程中有需要转义,又多一步转义编码?
但同时隐忧,解码尽量利用浏览器行为,是否会有浏览器不兼容性的隐忧,或许不如就老老实实手动编码?
目的:
寻求一个最优雅文件名编码形式,适应上传后、服务器端存储、服务器端 linux shell 处理、浏览器回显、浏览器下载等多种场景下,编解码最少、最优雅、同时一定程度上考虑浏览器兼容性的中文文件名编码转化方式。

文件, 编码, 浏览器, Linux

jifengg   
“支持各种服务器编码”这个是真实情况还是臆想出来的?
服务器统一使用 UTF8 编码不行吗?
服务器端统一了,那全流程都是 utf8 编码,不会有问题的。(不要用 UTF8 BOM 头!!!)
您需要登录后才可以回帖 登录 | 立即注册

返回顶部