url传参中文字符问题

项目背景:android+SpringBoot

        在向springboot后端通过url传参过程中,后端idea一直报错找不到变量或者变量为空,检查了很久一直没发现问题所在,以为是Controller中@GetMapping注解的对应函数接收参数过多,改成只接受一个@RequestParam后,仍然报相同的错。

回到as查看才发现url只有一半,如下图

 

 

 对比后发现,中文字符处,url断开,即无法识别。

         那么肯定大概率是跟编码有关,不知道具体哪里出现了问题,但可以直接在传输前最后一步执行一下编码转换。获得移动端参数后,直接将编码转换为utf-8,(数字字符就不用了)符合浏览器的模式,用try..catch避免转码失败无法编译,这部分执行后,url显示完整,后端可正常接受传值。

public void onClick(View v) {
                String pe_name=result.getName().toString();
                String pe_gender=result.getSex().toString();
                String pe_ethnic=result.getNation().toString();
                String pe_address=result.getAddress().toString();
                String encode_name = null,encode_gender=null,encode_ethnic=null,encode_address = null;
                try {
                    encode_name = URLEncoder.encode(pe_name, "utf-8");
                    encode_gender = URLEncoder.encode(pe_gender, "utf-8");
                    encode_ethnic = URLEncoder.encode(pe_ethnic, "utf-8");
                    encode_address= URLEncoder.encode(pe_address, "utf-8");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
               url=fixurl+"idcard/add?pe_no="+result.getId().toString()
                         +"&&pe_name="+encode_name
                      +"&&pe_gender="+encode_gender
                       +"&&pe_ethnic="+encode_ethnic
                       +"&&pe_birthday="+result.getBirth().toString()
                       +"&&pe_address="+encode_address;
               Log.d("yjj",url);
               getNetwork(url);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值