http请求采用HttpURLConnection的GET方式,返回乱码

愚蠢的土拨鼠ID 2014-08-20 11:56:01
我请求的是有中文内容的文件
url=new URL(urlDate);
try {
//打开对服务器的连接
conn=(HttpURLConnection) url.openConnection();
//连接服务器
conn.connect();
System.out.println("连接服务器!!!!!");
/**读入服务器数据的过程**/
//得到输入流
is=conn.getInputStream();
//创建包装流
BufferedReader br=new BufferedReader(new InputStreamReader(is));
//定义String类型用于储存单行数据
String line=null;
//创建StringBuffer对象用于存储所有数据
StringBuffer sb=new StringBuffer();
while((line=br.readLine())!=null){
sb.append(line);
}
String result=sb.toString();
System.out.println(result);
...全文
3240 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
折柳君 2014-08-27
  • 打赏
  • 举报
回复
new InputStreamReader(is)还有一个两个参数的构造方法啊!第二个参数是设置编码啊!你可以设定为UTF-8
jobying 2014-08-27
  • 打赏
  • 举报
回复
哥们,要解码啊
skgary 2014-08-27
  • 打赏
  • 举报
回复
引用 6 楼 jhonzengxuejun 的回复:
[quote=引用 3 楼 skgary 的回复:] 去看一下content-type字段返回的到底 是什么字符集的,如果是gb2312或gbk的,要转成utf-8的。。
content-type字段是通过抓包来查看吗?我抓包看到有这个字段,但是如何在程序中直接查看啊,又没什么方法呢, 哦我改成BufferedReader br=new BufferedReader(new InputStreamReader(is,“GBK”));就没乱码了,有什么办法获取这个服务器下发文件的编码类型呢,感谢了,我是菜鸟,还望在指导指导! [/quote] 去拿http header里的内容啊。
  • 打赏
  • 举报
回复
引用 3 楼 skgary 的回复:
去看一下content-type字段返回的到底 是什么字符集的,如果是gb2312或gbk的,要转成utf-8的。。
content-type字段是通过抓包来查看吗?我抓包看到有这个字段,但是如何在程序中直接查看啊,又没什么方法呢, 哦我改成BufferedReader br=new BufferedReader(new InputStreamReader(is,“GBK”));就没乱码了,有什么办法获取这个服务器下发文件的编码类型呢,感谢了,我是菜鸟,还望在指导指导!
lionfresh 2014-08-21
  • 打赏
  • 举报
回复
楼上正解...
skgary 2014-08-21
  • 打赏
  • 举报
回复
去看一下content-type字段返回的到底 是什么字符集的,如果是gb2312或gbk的,要转成utf-8的。。
zhhuaw 2014-08-21
  • 打赏
  • 举报
回复
inputStreamReader(inputStream input, charSet cs),可以选定字符集进行读取。
manxiSafe 2014-08-21
  • 打赏
  • 举报
回复
楼上正解...
  • 打赏
  • 举报
回复
先自己顶一下再说

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧