[HtmlUnit] SVN: [15461] trunk/htmlunit/src
rbri--- via HtmlUnit-develop <[email protected]> Sat, 14 Jul 2018 11:58:03 +0000
| Newsgroups | gmane.comp.java.htmlunit.devel |
|---|---|
| Message-ID | <[email protected]> |
Revision: 15461
http://sourceforge.net/p/htmlunit/code/15461
Author: rbri
Date: 2018-07-14 11:57:57 +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/WebResponse.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/activex/javascript/msxml/XMLHTTPRequest.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java
trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebResponseTest.java
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebResponse.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebResponse.java 2018-07-14 09:47:57 UTC (rev 15460)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebResponse.java 2018-07-14 11:57:57 UTC (rev 15461)
@@ -57,6 +57,7 @@
private long loadTime_;
private WebResponseData responseData_;
private WebRequest request_;
+ private boolean defaultCharsetUtf8_;
/**
* Constructs with all data.
@@ -180,12 +181,12 @@
// xml pages are using a different content type
if (null != contentType
- && PageType.XML == DefaultPageCreator.determinePageType(contentType)) {
+ && (defaultCharsetUtf8_
+ || PageType.XML == DefaultPageCreator.determinePageType(contentType))) {
return UTF_8;
}
+ }
- charset = getWebRequest().getCharset();
- }
if (charset == null) {
charset = ISO_8859_1;
}
@@ -287,4 +288,11 @@
responseData_.cleanUp();
}
}
+
+ /**
+ * Mark this response for using UTF-8 as default charset.
+ */
+ public void defaultCharsetUtf8() {
+ defaultCharsetUtf8_ = true;
+ }
}
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/activex/javascript/msxml/XMLHTTPRequest.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/activex/javascript/msxml/XMLHTTPRequest.java 2018-07-14 09:47:57 UTC (rev 15460)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/activex/javascript/msxml/XMLHTTPRequest.java 2018-07-14 11:57:57 UTC (rev 15461)
@@ -574,6 +574,9 @@
if (LOG.isDebugEnabled()) {
LOG.debug("Web response loaded successfully.");
}
+ // this kind of web responses using UTF-8 as default encoding
+ webResponse.defaultCharsetUtf8();
+
boolean allowOriginResponse = true;
if (originHeaderValue != null) {
final String value = webResponse.getResponseHeaderValue(HttpHeader.ACCESS_CONTROL_ALLOW_ORIGIN);
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java 2018-07-14 09:47:57 UTC (rev 15460)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java 2018-07-14 11:57:57 UTC (rev 15461)
@@ -748,6 +748,9 @@
if (LOG.isDebugEnabled()) {
LOG.debug("Web response loaded successfully.");
}
+ // this kind of web responses using UTF-8 as default encoding
+ webResponse.defaultCharsetUtf8();
+
boolean allowOriginResponse = true;
if (originHeaderValue != null) {
String value = webResponse.getResponseHeaderValue(HttpHeader.ACCESS_CONTROL_ALLOW_ORIGIN);
Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebResponseTest.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebResponseTest.java 2018-07-14 09:47:57 UTC (rev 15460)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebResponseTest.java 2018-07-14 11:57:57 UTC (rev 15461)
@@ -107,8 +107,8 @@
public void illegalCharset() throws Exception {
illegalCharset("text/html; text/html; charset=ISO-8859-1;", ISO_8859_1);
illegalCharset("text/html; charset=UTF-8; charset=UTF-8", UTF_8);
- illegalCharset("text/html; charset=#sda+s", UTF_8);
- illegalCharset("text/html; charset=UnknownCharset", UTF_8);
+ illegalCharset("text/html; charset=#sda+s", ISO_8859_1);
+ illegalCharset("text/html; charset=UnknownCharset", ISO_8859_1);
}
private void illegalCharset(final String cntTypeHeader, final Charset expectedCharset) throws Exception {
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot