HttpClient (MultipartEntityBuilder) 上传文件中文乱码

背景

网页上传文件到A服务器,A将文件传到B服务器保存,B接收文件后出现如下错误:

java.io.IOException: java.io.FileNotFoundException: 
...\uploads\c4e5540d5c????_??.png (文件名、目录名或卷标语法不正确。)

原因是文件名称含有中文,导致乱码。
经测试,只有当文件名称含中文,且从A传到B后会出现问题。

解决

设置MultipartEntityBuildermodeHttpMultipartMode.RFC6532,将数据以UTF-8编码格式处理。

builder.setMode(HttpMultipartMode.RFC6532);

后记

最开始,在A、B代码中各种设置转UTF-8都无效,网上搜了各种方式。解决该问题用了将近1天时间。

一部分上传代码

你可能感兴趣的:(HttpClient (MultipartEntityBuilder) 上传文件中文乱码)