2013-09-12 3 views
1

Я пытаюсь войти в мой университетский веб-сайт с HtmlUnit (версия 2.12), но у меня есть проблемы, имеющие отношение к кодированию веб-сайтаHtmlUnit Кодирование Исключение

код:

try { 
     WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_9); 
     WebClientOptions options = webClient.getOptions(); 
     options.setCssEnabled(false); 
     options.setThrowExceptionOnScriptError(false); 
     options.setThrowExceptionOnFailingStatusCode(false); 
     options.setRedirectEnabled(true); 
     options.setJavaScriptEnabled(true); 
     HtmlPage page = (HtmlPage) webClient.getPage("http://www.oid.hacettepe.edu.tr/cgi-bin/menuindex.cgi"); 

    } catch (IOException ex) { 
     Logger.getLogger(AnaSayfa.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (FailingHttpStatusCodeException ex) { 
     Logger.getLogger(AnaSayfa.class.getName()).log(Level.SEVERE, null, ex); 
    } 

Исключение:

java.io.UnsupportedEncodingException: İSO-8859-9 

Я также пытаюсь изменить кодировку с помощью этого кода:

WebRequest webRequest = new WebRequest(new URL("http://www.oid.hacettepe.edu.tr/cgi-bin/menuindex.cgi")); 
webRequest.setCharset("utf-8"); 
HtmlPage page = (HtmlPage) webClient.getPage(webRequest); 

, но моя проблема продолжается: (пожалуйста, дайте совет для решения

ответ

0

Я никогда раньше не сталкивался с такими проблемами. Тем не менее, ваш код работает нормально для меня (оба из них). Это выход я получаю:

<?xml version="1.0" encoding="ISO-8859-9"?> 
<html> 
    <head> 
    <title> 
     HU OIDB 
    </title> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"/> 
    <link rel="shortcut icon" href="http://www.oid.hacettepe.edu.tr/oidb.ico"/> 
    </head> 
... 
</html> 

Btw, вы заметили, есть странные İ символ в вашем выводе?

java.io.UnsupportedEncodingException: İSO-8859-9 

Основываясь на том, что я могу запустить это, и вы не можете предположить, что это может быть какое-то значение по умолчанию для оперативной системы. И, конечно же, это должно быть связано с кодированием.

Вам следует попробовать изменить кодировку JVM по умолчанию. Вы можете сделать это с помощью JAVA_TOOL_OPTIONS или с помощью командной строки при запуске приложения:

java -Dfile.encoding=UTF-8 -jar YourApp.jar 
+0

Проблема решена, я изменил язык системы с Locale.setDefault (Locale.ENGLISH); Большое спасибо :) –

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