java get 请求 返回值乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java get 请求 返回值乱码相关的知识,希望对你有一定的参考价值。

如题,
直接在浏览器地址栏中输入该地址
http://116.236.151.122/login/login.php?loginname=name&password=pwd&orgcode=test&loginsys=2&isSubmit=1
返回值正常是一串json数据,可解析;

但是程序请求返回值则是乱码,不可解析;
程序如下:
//Get public HttpClient httpclient = new HttpClient(); public String getlogin() String result = null; GetMethod get = new UTF8GetMethod("http://116.236.151.122/login/login.php?loginname=name&password=pwd&orgcode=test&loginsys=2&isSubmit=1"); try httpclient.executeMethod(get); result = get.getResponseBodyAsString(); catch (Exception e) e.printStackTrace(); return result; public static class UTF8GetMethod extends GetMethod public UTF8GetMethod(String url) super(url); @Override public String getRequestCharSet() return "utf-8";
程序返回值如下图:

请教各位大神,解决办法!!!

参考技术A

您好,提问者:
    如果包含中文,不建议使用get方式,可采用post提交方式。

//可以采用加密、解码的方式进行加码提交,例如:
//加码
String str = java.net.URLEncoder.encode("中国","UTF-8");
//解码
String jiema = java.net.URLDecoder.decode(str,"UTF-8");

追问

你好,数据中不包含中文,您的回答没有解决上述问题,运行得到结果还是乱码。
感谢回答!!!

追答

\u9519\u8bef\u7684\u5355\u4f4d\u7b80\u79f0
这还没中文?
十六进制转换后汉字为:错误的单位简称

追问

这个是在浏览器中的返回值,这种数据转码就可以了,现在的问题在于程序中请求得到的是乱码,如题目中图片的问题该怎么解决?

追答

换成post也是乱码吗? 如果包含中文,不建议使用get方式,可采用pos方式。

追问

post同样是乱码,代码如下:


建议您在本地运行之后在回答,非常感谢!!!

追答

ContentType("text/html; charset=编码格式")告诉浏览器采用什么编码格式。

以上是关于java get 请求 返回值乱码的主要内容,如果未能解决你的问题,请参考以下文章

spring RestTemplate发送请求返回值乱码问题解决心得

JsonObjectRequest GET 方法返回值后请求获取值

Spring MVC @ResponseBody注解返回值中文乱码问题

$.ajax()请求的返回的值怎样输出在一个div里???

(java)jsp页面ajax发出请求返回json格式数据 中文乱码问题

Java Web之Servlet中responserequest乱码问题解决