(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體系的問題