Android http get请求里中文是乱码的解决(其中一种情况)

在Android开发中,遇到4.4版本以下设备进行http GET请求时,中文参数显示为乱码,导致服务器无法正确识别。问题在于请求链接中的中文字符串未正确编码。解决方法是在拼接URL前,使用URLEncoder.encode对中文参数进行`utf-8`编码。通过这个改动,可以避免乱码问题,确保服务器能正常处理请求。
摘要由CSDN通过智能技术生成

最近在进行Android开发的过程中,发现了一个问题,特意在这里记录一下。下面我来描述一下这个问题:当我在Android 4.4版本进行http get请求的时候,我的get请求链接里的中文字符串显示为???,导致服务器不能正常识别我的参数,从而使程序运行出错(并不是所有的Android设备都会出错,我的这种情况仅在Android版本为5.0以下的设备上出现了)。
具体的情况如下图:
出错的网络请求是蓝底
在上图可以看出,data参数本来是一个中文字符串,但是却变成了???,导致服务器那边接受到参数不能识别。
从图中看出,我的content-type里已经包括了UTF-8编码,但是依旧显示的是乱码。一般情况下,出现这种中文乱码都是由于编码导致的。经过测试和查阅资料,我在进行我的网络请求之前,也就是在拼接我的url之前对我们的中文参数进行编码,就可以解决这个问题。
下面我把自己修改前后的代码贴出来(在进行网络请求之前的url拼接阶段):
这是之前出错的代码:

 public void getAutoCompleteInfo(String data, SingleServiceState listener) {
        this.listener 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值