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