jsp-httpclient中url中带中文怎么解决
使用httpclient用getmethod发送http请求的时候url中带中文比如http://localhost/test.aspx?param=中文使用getmet...
使用httpclient用getmethod发送http请求的时候url中带中文比如
http://localhost/test.aspx?param=中文
使用getmethod就会出错,说是非法url
而接受页面不是我的 我也没有办法
有没有好的解决办法?
各位大哥大姐们帮我看看
感谢1楼的回答,但是我转换后怎么还是出错?
有用过httpclient的高手或者熟悉抓取网页的高手协助我一下,
在线等
baidu-hi
前面的编码问题我自己解决了,感谢jiji19jly和风骚的幼男了,
jiji19jly是第一个分就给他了,骚男没有意见吧 展开
http://localhost/test.aspx?param=中文
使用getmethod就会出错,说是非法url
而接受页面不是我的 我也没有办法
有没有好的解决办法?
各位大哥大姐们帮我看看
感谢1楼的回答,但是我转换后怎么还是出错?
有用过httpclient的高手或者熟悉抓取网页的高手协助我一下,
在线等
baidu-hi
前面的编码问题我自己解决了,感谢jiji19jly和风骚的幼男了,
jiji19jly是第一个分就给他了,骚男没有意见吧 展开
2016-02-08 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
jsp-httpclient中url中带中文的解决办法:
在Servlet中 添加 req.setCharacterEncoding("UTF-8");
然后para=req.getParameter("title");取出参数。
在转发的时候,设置参数GBK编码:para = URLEncoder.encode(para, "GBK");
再使用HttpClient发送Get请求。这个时候就成功了。
在Servlet中接收参数的时候,必须指定req.setCharacterEncoding("参数编码方式");这样取出来的参数才不会乱码,随后对参数的处理才能成功。
在Servlet中 添加 req.setCharacterEncoding("UTF-8");
然后para=req.getParameter("title");取出参数。
在转发的时候,设置参数GBK编码:para = URLEncoder.encode(para, "GBK");
再使用HttpClient发送Get请求。这个时候就成功了。
在Servlet中接收参数的时候,必须指定req.setCharacterEncoding("参数编码方式");这样取出来的参数才不会乱码,随后对参数的处理才能成功。
展开全部
把你的代码贴出来看看????
什么错都不说,叫人家怎么帮你?
你能说说转换后出什么错吗?
用native2ascii把中文转换成UTF-8编码,或者你用java转换,转换函数如下:
private static String convert(String str)
{
StringBuffer sb = new StringBuffer(1024);
sb.setLength(0);
for(int i=0; i<str.length(); i++)
{
char c = str.charAt(i);
if (c > 255)
{
sb.append("\\u");
int j = (c >>> 8);
String tmp = Integer.toHexString(j);
if (tmp.length() == 1)
{
sb.append("0");
}
sb.append(tmp);
j = (c & 0xFF);
tmp = Integer.toHexString(j);
if (tmp.length() == 1)
{
sb.append("0");
}
sb.append(tmp);
}
else
{
sb.append(c);
}
}
return(new String(sb));
}
经过转换后,你的URL:
http://localhost/test.aspx?param=\u4e2d\u6587
什么错都不说,叫人家怎么帮你?
你能说说转换后出什么错吗?
用native2ascii把中文转换成UTF-8编码,或者你用java转换,转换函数如下:
private static String convert(String str)
{
StringBuffer sb = new StringBuffer(1024);
sb.setLength(0);
for(int i=0; i<str.length(); i++)
{
char c = str.charAt(i);
if (c > 255)
{
sb.append("\\u");
int j = (c >>> 8);
String tmp = Integer.toHexString(j);
if (tmp.length() == 1)
{
sb.append("0");
}
sb.append(tmp);
j = (c & 0xFF);
tmp = Integer.toHexString(j);
if (tmp.length() == 1)
{
sb.append("0");
}
sb.append(tmp);
}
else
{
sb.append(c);
}
}
return(new String(sb));
}
经过转换后,你的URL:
http://localhost/test.aspx?param=\u4e2d\u6587
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
URLEncode.encode("中文", "utf-8");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询