在一些发送请求的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元 | ![]() |