返回信息流谁能给个简体中文的google页面啊,我用java写的得到google首页的源码是繁体的,从源代码看又是别的乱码,所有不能被我自己的浏览器(swt browser)正常显示,谁能帮忙给个代码,跪求啊 小弟先谢过了!(我操作系统默认编码时GBK)
这是一条镜像帖。来源:北邮人论坛 / java / #16740同步于 2010/12/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
谁能给点力
Forest0579
2010/12/7镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
url里添加hl=zh-CN,得到的是简体中文。google页面编码utf8,跟操作系统没关系。让浏览器用utf8渲染,或者把google页面转成gbk,同时将head里编码替换成gbk。
够清楚了吧。
清楚是够清楚了 可是只能使用于像google这种搜索引擎首页吧 我现在做这个google只是其中一个网址而已,不能单碰到google这个网页就对他来一次这个,能不能给个通用点的方法,或者说可以直接找到能直接得到简体中文页面方法呢?
【 在 greedisgood 的大作中提到: 】
: url里添加hl=zh-CN,得到的是简体中文。google页面编码utf8,跟操作系统没关系。让浏览器用utf8渲染,或者把google页面转成gbk,同时将head里编码替换成gbk。
: 够清楚了吧。
: --
: ...................
package a;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HttpTest
{
public static void main(String[] args) throws MalformedURLException, IOException
{
String location="http://www.google.com";
String cookie = "";
do {
HttpURLConnection conn = (HttpURLConnection) new URL(location).openConnection();
if(cookie.length() != 0)
{
conn.setRequestProperty("Cookie", cookie);
}
conn.setRequestProperty("Proxy-Connection", "Keep-Alive");
conn.setRequestProperty("Accept-Language", "zh-cn,en-us;q=0.5");
// conn.setRequestProperty("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*");
// conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648)");
conn.setInstanceFollowRedirects(false);
int code = conn.getResponseCode();
if(code == HttpURLConnection.HTTP_MOVED_TEMP) {
cookie = conn.getHeaderField("Set-Cookie") + ";";
//
location=conn.getHeaderField("Location");
System.out.println(location);
}
if(conn.getResponseCode() == HttpURLConnection.HTTP_OK)
{
BufferedReader reader=new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
String line=null;
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:/a.html")));
while((line=reader.readLine())!=null)
{
writer.write(line+"\r\n");
}
writer.close();
conn.disconnect();
break;
}
} while(true);
}
}
这位学长吧应该是,这个要得到一个页面的源码难道没有通用的方法的吗,为什么我拿这个去试http://www.sohu.com又错了 那个utf-8改了还是错的 全是乱码,哎 囧啊 能不能给个通用的方法 实在是没辙了我
【 在 yueyingcs 的大作中提到: 】
: 用ie打开,编码选简体中文
: 或者将b.html里的charset改为gbk,直接用ie打开可以显示,就是没图像
: --
: ...................
通用的就是选择任意一种编码打开输入流,比如utf8,down下来页面后,查找里面的charset,然后再把这个页面读进内存,用charset的编码设置输出流,导出,就Ok了。因为不论哪种编码,html页面里的英文字符都是可以正确显示的,不会影响你找charset。
【 在 yueyingcs 的大作中提到: 】
: 用ie打开,编码选简体中文
: 或者将b.html里的charset改为gbk,直接用ie打开可以显示,就是没图像
: --
: ...................
新改版的google图片是相对链接,得自己补全。
【 在 Forest0579 的大作中提到: 】
: 这位学长吧应该是,这个要得到一个页面的源码难道没有通用的方法的吗,为什么我拿这个去试http://www.sohu.com又错了 那个utf-8改了还是错的 全是乱码,哎 囧啊 能不能给个通用的方法 实在是没辙了我
: 【 在 yueyingcs 的大作中提到: 】
: : 用ie打开,编码选简体中文
: ...................
通用就得自己实现或者找spider之类的了。
好吧 谢谢了
【 在 yueyingcs 的大作中提到: 】
: : 这位学长吧应该是,这个要得到一个页面的源码难道没有通用的方法的吗,为什么我拿这个去试http://www.sohu.com又错了 那个utf-8改了还是错的 全是乱码,哎 囧啊 能不能给个通用的方法 实在是没辙了我
: : 【 在 yueyingcs 的大作中提到: 】
: : : 用ie打开,编码选简体中文
: ...................