PostMethod提交带有附件的的form乱码问题解决

简介:

主题,直接重点:

=====================================================================

通常会直接如下这样写:

Part[] parts = {
                 new StringPart("name", "HelloWorld,小单"),
                 new FilePart("file", new File("e:\\resume.doc"))
        };
        PostMethod mPost = new PostMethod(url);
        mPost.setRequestEntity(new MultipartRequestEntity(parts, mPost.getParams()));
        int status = httpClient.executeMethod(mPost);

不出意外的话,会出乱码 ^_^


做如下修改,在new StringPart方法中增加参数,charset

 Part[] parts = {
                 new StringPart("name", "HelloWorld,小单", "UTF-8"),
                 new FilePart("file", new File("e:\\resume.doc"))
        };


原因:

查看StringPart源码,如下:

    /** Default charset of string parameters*/
    public static final String DEFAULT_CHARSET = "US-ASCII";

    public StringPart(String name, String value, String charset) {
        
        super(
            name,
            DEFAULT_CONTENT_TYPE,
            charset == null ? DEFAULT_CHARSET : charset,
            DEFAULT_TRANSFER_ENCODING
        );
        if (value == null) {
            throw new IllegalArgumentException("Value may not be null");
        }
        if (value.indexOf(0) != -1) {
            // See RFC 2048, 2.8. "8bit Data"
            throw new IllegalArgumentException("NULs may not be present in string parts");
        }
        this.value = value;
    }


如不指定charset,则会使用默认编码“US-ASCII”。

PS:我用的jar包为 commons-httpclient-3.1.jar

目录
相关文章
|
7月前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
416 1
|
7月前
|
Java 网络安全 数据安全/隐私保护
javaMai+Springl实现给QQ邮箱发邮件(带附件,html格式)
javaMai+Springl实现给QQ邮箱发邮件(带附件,html格式)
|
JSON JavaScript 前端开发
form表单提交方式
form表单提交方式
107 0
|
7月前
获取form表单提交的内容
获取form表单提交的内容
|
小程序 前端开发 JavaScript
小程序提交form表单
微信小程序提交form表单内容
95 0
|
前端开发
a标签以post方式提交
a标签以post方式提交
125 0
POST请求body实现数据以记事本格式保存在服务器
POST请求body实现数据以记事本格式保存在服务器
54 0
|
安全 Java
Java发送邮件(图片、附件、HTML)
Java发送邮件(图片、附件、HTML)
871 0
Java发送邮件(图片、附件、HTML)
|
JavaScript
form表单中带有文件上传,同时提交
前台JS(easyUI) function EditsubmitForm() { var father = $('#select_category').
3393 0