You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android使用net.gotev:uploadservice:2.1传递UTF-8字符乱码问题

解决MultipartUploadService UTF-8参数乱码问题

这个乱码问题挺常见的,核心原因是默认情况下net.gotev:uploadservice库没有强制用UTF-8编码传递文本参数,导致服务器端接收时编码不匹配,最终存入数据库就变成了????。给你两个关键的解决步骤:

1. 客户端(Android)强制指定UTF-8编码

在构建MultipartUploadRequest的代码里,直接添加setUtf8Charset()方法——这是该库专门提供的用来设置UTF-8编码的API,能确保所有文本参数都以UTF-8格式发送。

修改后的代码片段如下:

new MultipartUploadRequest(this, uploadId, Constants.UPLOAD_URL)
    .setUtf8Charset() // 这一行是核心,必须加上!
    .addFileToUpload(path, "image") // 添加图片文件
    .addParameter("name", strFileName)
    .addParameter("iduser", iduser + "")
    .addParameter("madah", madah.getText().toString())
    // 继续添加你的其他参数
    .startUpload(); // 启动上传请求

2. 服务器端同步配置UTF-8解析

光客户端设置还不够,服务器端也要对应配置成UTF-8编码接收请求,不然就算客户端发对了,服务器解析错了还是会乱码:

  • 如果是PHP后端:在处理上传的脚本开头添加header('Content-Type: multipart/form-data; charset=UTF-8');,同时数据库连接时指定UTF-8(比如mysqli_set_charset($conn, "utf8mb4");,用utf8mb4能支持更多特殊字符)。
  • 如果是Java Web后端:可以在web.xml里配置字符编码过滤器,或者在处理请求的代码里设置request.setCharacterEncoding("UTF-8");,数据库连接URL要加上useUnicode=true&characterEncoding=utf8mb4。
  • 如果是其他后端框架:找到对应设置请求字符编码的方式,确保和客户端统一用UTF-8。

两端都统一编码后,文本参数就能正常传递,存入数据库也不会出现乱码了。

内容的提问来源于stack exchange,提问作者je30ca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:04:51