android url有汉字,Android url带有中文、空格处理

普通的GET请求,参数直接拼在后面。参数中带有中文和空格需要处理

最开始:用URLEncoder.encode直接处理带有中文的参数

val finishStr = URLEncoder.encode(bean?.finishTime, "utf-8")

val taskName = URLEncoder.encode(bean?.taskName, "utf-8")

var shareUrl = "${UrlConfig.HOST_URL}/dist/index.html#/homeWorkShare/${APP.getUserBean().userId}" +

"/${bean?.newscore}/${bean?.newMinTime}/${bean?.highScore}/${bean?.topTen}/${bean?.onTime}" +

"/$finishStr/$taskName/6"

出现的问题:当finishStr、taskName时空格是会被转义成“+”,而不是%20,可能后台或H5的无法解析

增加replace("\+", "%20")替换“+”

val finishStr = URLEncoder.encode(bean?.finishTime, "utf-8").replace("\\+", "%20")

val taskName = URLEncoder.encode(bean?.taskName, "utf-8").replace("\\+", "%20")

var shareUrl = "${UrlConfig.HOST_URL}/dist/index.html#/homeWorkShare/${APP.getUserBean().userId}" +

"/${bean?.newscore}/${bean?.newMinTime}/${bean?.highScore}/${bean?.topTen}/${bean?.onTime}" +

"/$finishStr/$taskName/6"

然而结果“+”并未成功替换

3734ece83400

image.png

最终:使用android.net包下的Uri.encode完美解决。中文空格问题

val finishStr = Uri.encode(bean?.finishTime, "utf-8")

val taskName = Uri.encode(bean?.taskName, "utf-8")

var shareUrl = "${UrlConfig.HOST_URL}/dist/index.html#/homeWorkShare/${APP.getUserBean().userId}" +

"/${bean?.newscore}/${bean?.newMinTime}/${bean?.highScore}/${bean?.topTen}/${bean?.onTime}" +

"/$finishStr/$taskName/6"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值