背景
網(wǎng)頁上傳文件到A服務(wù)器,A將文件傳到B服務(wù)器保存,B接收文件后出現(xiàn)如下錯誤:
java.io.IOException: java.io.FileNotFoundException:
...\uploads\c4e5540d5c????_??.png (文件名、目錄名或卷標(biāo)語法不正確。)
原因是文件名稱含有中文,導(dǎo)致亂碼。
經(jīng)測試,只有當(dāng)文件名稱含中文,且從A傳到B后會出現(xiàn)問題。
解決
設(shè)置MultipartEntityBuilder的mode為HttpMultipartMode.RFC6532,將數(shù)據(jù)以UTF-8編碼格式處理。
builder.setMode(HttpMultipartMode.RFC6532);
后記
最開始,在A、B代碼中各種設(shè)置轉(zhuǎn)UTF-8都無效,網(wǎng)上搜了各種方式。解決該問題用了將近1天時間。

一部分上傳代碼