(1)文件名(中文)存储到hbase,然后取出,乱码
原因:存入hbase时,进行了一次utf-8转码(String转byte[]),取出时,byte[]转String没有指定编码,导致乱码;
分析:存入和取出后,结果乱码,分析下中间是否有转码,存储系统是不是有默认编码
(2)文件名在程序中,正常,通过new File(文件名)创建出的文件的名字乱码(文件里内容没有乱码)
原因:程序打包成镜像,镜像没有指定编码集,镜像文件系统默认编码集好像不是utf-8,导致写的文件名乱码
解决:Dockerfile中指定编码集 ENV LANG C.UTF-8
(3)上传文件,程序中打印文件名,在本地测试,正常,服务器上乱码
(ps:服务器上request.getCharacterEncoding()返回的是UTF-8,用utf-8对文件名各种尝试,始终乱码)
原因:本地测试,没有走api网关(spring boot体系),服务器上走api网关,本地测试也走api网关时,同样乱码;
解决:请求地址中,加上 /zuul/(具体,百度),这应该是spring boot体系的问题