处理含中文的链接的URLEncoding

 

在一些发送请求的URL中,传递的参数(如 keyword=中文)可能含有中文,通常默认以utf-8编码来处理,可能需要根据网站支持的编码(如GBK)先进行URL Encoding.

如果是自己手动创建URL请求,可以将中文参数先URLEncoding再拼接到URL中,然后发送请求。

如果从页面提取的URL中含有中文,我们可能需要提取出URL中的中文参数进行处理,涉及到识别中文字符串的问题,下面的方法实现将URL字符串(假定默认是utf8编码)中的中文以指定中文编码进行URLEcoding.

 

       gburl = EncodeURLwithChinese(utf8url, "gb18030") // 兼容gbk, gb2312

 

        public String EncodeURLwithChinese(String url, String charset) throws UnsupportedEncodingException {                   
            byte b[] = url.getBytes("utf-8");
           
            int left = 0;
            int i = 0;
            String newUrl = "";
            while (i < b.length) {
                if (b[i] < 0) {
                    while (i < b.length && b[i] < 0) {
                        i ++;
                    }                   
                    newUrl += URLEncoder.encode(new String(Arrays.copyOfRange(b, left, i)),charset);
                    left = i;
                }
                else {
                    while (i < b.length && b[i] >= 0) {
                        i ++;
                    }
                    newUrl += new String(Arrays.copyOfRange(b, left, i));
                    left = i;
                }
            }
           
            return newUrl;
        }

 

 

-----------------------------------------

热卖 唐狮正品冬男棉衣棉服外套#109411062001
159.0元 
2010新款 热卖 唐狮正品冬男装羽绒服羽绒衣#105090833
329.0元 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值