Java处理参数中带特殊符号

使用get方式时参数中不能有特殊字符,如:,空格,%,#,&,=等等;尤其是一些图片带有特殊字符,查询图片url的时候
解决办法:用URL转义符替换。
下面列出如下:

URL 中+号表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
% 指定特殊字符 %25
#表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D

这里以http://localhost/getCode?url=www.baidu.com?channel=HY0649&type=02为例:
很好解决:前端传递参数时候encode一下此参数即可。我这边在java模拟一下encode,再用encode后的参数发送请求

    public static void main(String[] args) throws UnsupportedEncodingException {
        String url = "www.baidu.com?channel=HY0649&type=02";
        String encodeUrl = URLEncoder.encode(url, "UTF-8");
        System.out.println(encodeUrl);
    }

encode后的url参数输出为:www.baidu.com%3Fchannel%3DHY0649%26type%3D02
或者把get方法改成post

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鹏小站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值