Java 如何将非英语单词作为文本部分添加到凌空库中的多部分请求中?

Java 如何将非英语单词作为文本部分添加到凌空库中的多部分请求中?,java,android,android-volley,multipart,rfc,Java,Android,Android Volley,Multipart,Rfc,我有一个自定义的json请求类,可以将多部分文件上传到Android应用程序中的服务器上。当我添加英语单词作为键和值(这些键和值是一部分)时,它可以正常工作,但当我使用任何阿拉伯文单词时,它会写入未知单词,如“'D*F*9” 在我将这些值写入ByteArrayOutputStream对象之前,一切正常,我可以看到阿拉伯单词。 这是all类的获取正文内容类型方法 @Override public String getBodyContentType() { return "multipart

我有一个自定义的json请求类,可以将多部分文件上传到Android应用程序中的服务器上。当我添加英语单词作为键和值(这些键和值是一部分)时,它可以正常工作,但当我使用任何阿拉伯文单词时,它会写入未知单词,如“'D*F*9”
在我将这些值写入ByteArrayOutputStream对象之前,一切正常,我可以看到阿拉伯单词。
这是all类的获取正文内容类型方法

@Override
public String getBodyContentType() {
    return "multipart/form-data;charset=UTF-8;boundary=" + boundary;
    //return "application/json; charset=UTF-8";
    //return "multipart/form-data; charset=UTF-8";
}


下面是构建文本部分的方法,用于构建文本部分

 private void buildTextPart(DataOutputStream dataOutputStream, String parameterName, String parameterValue) throws IOException {
    dataOutputStream.writeBytes(twoHyphens + boundary + lineEnd);
    //dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"" + parameterName + "\"" + lineEnd);
    dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"" + parameterName + "\"" + lineEnd);
    dataOutputStream.writeBytes("Content-Type: text/plain; charset=UTF-8" + lineEnd);
    //dataOutputStream.writeBytes("Content-Type: application/json; charset=UTF-8" + lineEnd);
    Log.d("inside buildText", parameterName + " " + parameterValue);
    dataOutputStream.writeBytes(lineEnd);
    dataOutputStream.writeBytes(parameterValue + lineEnd);
}


这里是我用来调试这些值的代码

// just for debugging
        DataInputStream in = new DataInputStream(new ByteArrayInputStream  (bos.toByteArray()));
        Scanner scanner = new Scanner(in);
        while (scanner.hasNext()){
            Log.d("scanner ", scanner.next());
        }


我读过这篇文章,但我不明白内容配置的目的和它的价值观是什么


我应该在这段代码中编辑什么才能正确获得阿拉伯语值

我应该更改所有部分的内容类型,还是可以使每个部分都有其内容类型


有什么帮助吗?

最后我找到了答案,问题出在这行

dataOutputStream.writeBytes(parameterValue + lineEnd);
因此我将其更新为

dataOutputStream.write(parameterValue.getBytes("utf-8"));
dataOutputStream.writeBytes(lineEnd);

获取所有非ASCII字符,现在它适用于所有语言。

将多部分文件上载到服务器
?什么是多部分文件?第一部分有一个图像,另一部分有一些键和值。文件是这样的吗?不这样认为。你想看看构造函数吗?你应该意识到多部分文件并不存在。只有多部分消息。或多部分上传或下载。但文件没有。我有这个问题,这是解决办法。谢谢你。