使用Java解码并从ContentDisposition获取文件名*

时间:2016-06-02 07:39:48

标签: java character-encoding http-headers

这是我的代码片段:

    for (Header header : headers) {
        if (StringUtils.containsIgnoreCase(header.getName(), "Content-Disposition")) {
            String headerValue = header.getValue();
            ContentDisposition cd = getContentDisposition(headerValue);
            String filename = cd.getParameter("filename*");
}
}

现在我所拥有的文件名是myFileName%EB%38%AA.txt

我可以用

获得全名
 filename=    java.net.URLDecoder.decode(cd.getParameter("filename*"), "UTF-8")

实际结果是

filename = UTF-8''myFileNameイイケ.txt

名称很好,但UTF-8''的首字母对我不利。

有没有办法从ContentDisposition获取编码?还是从标题?

或在创建过程中从文件名中删除编码的更好方法? 我想支持所有编码而没有明确提及它。

0 个答案:

没有答案