Java 指定URL连接的文档编码';s的反应

Java 指定URL连接的文档编码';s的反应,java,urlconnection,Java,Urlconnection,contentType是“text/html;charset=EUC-KR”。(在其他语言环境中可能有所不同)并且文档EncDoy与contentType中的一个相同 但是,当我使用web浏览器(如Firefox、Opera等)访问相同的URL(“”)时,它会说这是一个UTF-8编码的页面。(文档编码实际上是UTF-8。) 我想获得UTF-8编码的URLConnection,但似乎没有API。 我怎样才能做到这一点呢?我自己找到了答案 Google不会在请求中检查Accept字符集属性,但会检查

contentType是“text/html;charset=EUC-KR”。(在其他语言环境中可能有所不同)并且文档EncDoy与contentType中的一个相同

但是,当我使用web浏览器(如Firefox、Opera等)访问相同的URL(“”)时,它会说这是一个UTF-8编码的页面。(文档编码实际上是UTF-8。)

我想获得UTF-8编码的URLConnection,但似乎没有API。 我怎样才能做到这一点呢?

我自己找到了答案

Google不会在请求中检查Accept字符集属性,但会检查用户代理。 如果指定了用户代理并众所周知(Opera、Mozila等),Google将以UTF-8发送响应。 否则响应将为EUC-KR(在其他环境中可能有所不同)

所以,这里有一个答案:在连接之前添加这一行

        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);
你可以选择其他代理。(莫兹拉等…)

我自己找到了答案

Google不会在请求中检查Accept字符集属性,但会检查用户代理。 如果指定了用户代理并众所周知(Opera、Mozila等),Google将以UTF-8发送响应。 否则响应将为EUC-KR(在其他环境中可能有所不同)

所以,这里有一个答案:在连接之前添加这一行

        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);
你可以选择其他代理。(莫兹拉等)