[HtmlUnit] SVN: [15459] trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/ WebClient.java

rbri--- via HtmlUnit-develop <[email protected]> Sat, 14 Jul 2018 09:47:35 +0000
Newsgroups gmane.comp.java.htmlunit.devel
Message-ID <[email protected]>
Revision: 15459
          http://sourceforge.net/p/htmlunit/code/15459
Author:   rbri
Date:     2018-07-14 09:47:32 +0000 (Sat, 14 Jul 2018)
Log Message:
-----------
url encoding has to use UTF-8 as codepage

Modified Paths:
--------------
    trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClient.java

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClient.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClient.java	2018-07-13 16:24:00 UTC (rev 15458)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClient.java	2018-07-14 09:47:32 UTC (rev 15459)
@@ -36,6 +36,7 @@
 import java.net.URLConnection;
 import java.net.URLDecoder;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -460,8 +461,10 @@
      */
     @SuppressWarnings("unchecked")
     public <P extends Page> P getPage(final URL url) throws IOException, FailingHttpStatusCodeException {
-        return (P) getPage(getCurrentWindow().getTopWindow(),
-                new WebRequest(url, getBrowserVersion().getHtmlAcceptHeader()));
+        final WebRequest request = new WebRequest(url, getBrowserVersion().getHtmlAcceptHeader());
+        request.setCharset(StandardCharsets.UTF_8);
+
+        return (P) getPage(getCurrentWindow().getTopWindow(), request);
     }
 
     /**
@@ -881,6 +884,8 @@
         if (url != null) {
             try {
                 final WebRequest request = new WebRequest(url, getBrowserVersion().getHtmlAcceptHeader());
+                request.setCharset(StandardCharsets.UTF_8);
+
                 if (getBrowserVersion().hasFeature(DIALOGWINDOW_REFERER)
                         && openerPage != null) {
                     final String referer = openerPage.getUrl().toExternalForm();
@@ -1011,6 +1016,8 @@
 
         final HtmlPage openerPage = (HtmlPage) opener.getEnclosedPage();
         final WebRequest request = new WebRequest(url, getBrowserVersion().getHtmlAcceptHeader());
+        request.setCharset(StandardCharsets.UTF_8);
+
         if (getBrowserVersion().hasFeature(DIALOGWINDOW_REFERER) && openerPage != null) {
             final String referer = openerPage.getUrl().toExternalForm();
             request.setAdditionalHeader(HttpHeader.REFERER, referer);
@@ -1444,6 +1451,8 @@
                     || status == HttpStatus.SC_MOVED_TEMPORARILY
                     || status == HttpStatus.SC_SEE_OTHER) {
                 final WebRequest wrs = new WebRequest(newUrl, HttpMethod.GET);
+                wrs.setCharset(webRequest.getCharset());
+
                 if (HttpMethod.HEAD == webRequest.getHttpMethod()) {
                     wrs.setHttpMethod(HttpMethod.HEAD);
                 }
@@ -1455,6 +1464,8 @@
             else if (status == HttpStatus.SC_TEMPORARY_REDIRECT
                         || status == 308) {
                 final WebRequest wrs = new WebRequest(newUrl, webRequest.getHttpMethod());
+                wrs.setCharset(webRequest.getCharset());
+
                 wrs.setRequestParameters(parameters);
                 for (final Map.Entry<String, String> entry : webRequest.getAdditionalHeaders().entrySet()) {
                     wrs.setAdditionalHeader(entry.getKey(), entry.getValue());


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot