2013-02-25 3 views
1
 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 - это текст/html; charset = EUC-KR. (может отличаться в других языковых стандартах), а encoding Document - тот же, что и один из contentType.Укажите кодировку документа ответа URLConnection

Но, когда я получаю доступ к тому же URL-адресу («http://google.com») с помощью веб-браузера (IE, Firefox, Opera и т. Д.), Он говорит, что это кодированная UTF-8 страница. (и кодирование документов на самом деле является UTF-8.)

Я хочу получить кодировку URL UTF-8, но, похоже, API отсутствует. Как это сделать?

ответ

1

Я нашел ответ самостоятельно.

Google не проверяет свойство Accept-Charset по запросу, но проверяет User-Agent. Если User-Agent задан и хорошо известен (Opera, Mozila и т. Д.), Отправьте ответ Google в UTF-8. иначе ответ будет EUC-KR (может отличаться в другой среде).

Итак, вот ответ: добавьте эту строку перед подключением.

connection.setRequestProperty("User-Agent", "Opera/9.80"); 

Вы можете выбрать другой агент. (мозила и т. д.)

Смежные вопросы