URL url = new URL("http://google.com");
URLConnection connection = url.openConnection();
connection.connect();
System.out.println("conncetion successful.");
String contentType = connection.getContentType();
System.out.println(contentType);
contentType是“text / html; charset = EUC-KR”。 (可能在其他语言环境中有所不同),文档包含与contentType之一相同。
但是,当我使用web brwoser(IE,Firefox,Opera等)访问相同的URL(“http://google.com”)时,它说它是一个UTF-8编码的页面。 (文档编码实际上是UTF-8。)
我想获得UTF-8编码的URLConnection,但似乎没有API。 我怎么能做到这一点?
答案 0 :(得分:1)
我自己找到了答案。
Google未在请求中检查Accept-Charset属性,但会检查User-Agent。 如果User-Agent被指定并且众所周知(Opera,Mozila等......),Google会以UTF-8发送回复。 否则回复将是EUC-KR(可能在其他环境中有所不同)。
所以,这是一个答案:在连接之前添加这一行。
connection.setRequestProperty("User-Agent", "Opera/9.80");
您可能更喜欢其他代理商。 (莫兹拉等......)