[Httpunit-commit] CVS: httpunit/src/com/meterware/httpunit WebResponse.java,1.53,1.54
Brought to you by:
russgold
|
From: Russell G. <rus...@us...> - 2001-11-14 14:40:13
|
Update of /cvsroot/httpunit/httpunit/src/com/meterware/httpunit
In directory usw-pr-cvs1:/tmp/cvs-serv10614/src/com/meterware/httpunit
Modified Files:
WebResponse.java
Log Message:
Handle missing file encodings
Index: WebResponse.java
===================================================================
RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/WebResponse.java,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- WebResponse.java 2001/11/12 19:47:05 1.53
+++ WebResponse.java 2001/11/14 14:40:09 1.54
@@ -182,6 +182,11 @@
readContentTypeHeader();
if (_characterSet == null) _characterSet = getHeaderField( "Charset" );
if (_characterSet == null) _characterSet = HttpUnitOptions.getDefaultCharacterSet();
+ try {
+ "abcd".getBytes( _characterSet );
+ } catch (UnsupportedEncodingException e) {
+ _characterSet = getDefaultEncoding();
+ }
}
return _characterSet;
}
@@ -831,6 +836,25 @@
return doc;
}
+ private static String _defaultEncoding;
+
+ private final static String[] DEFAULT_ENCODING_CANDIDATES = { "iso-8859-1", "us-ascii", "utf-8", "utf8" };
+
+ static String getDefaultEncoding() {
+ if (_defaultEncoding == null) {
+ for (int i = 0; i < DEFAULT_ENCODING_CANDIDATES.length; i++) {
+ try {
+ _defaultEncoding = DEFAULT_ENCODING_CANDIDATES[i];
+ "abcd".getBytes( _defaultEncoding );
+ return _defaultEncoding;
+ } catch (UnsupportedEncodingException e) {
+ }
+ }
+ }
+ return (_defaultEncoding = System.getProperty( "file.encoding" ));
+ }
+
+
}
@@ -840,7 +864,7 @@
class ByteTag {
ByteTag( byte[] buffer, int start, int length ) throws UnsupportedEncodingException {
- _buffer = new String( buffer, start, length, "iso-8859-1" ).toCharArray();
+ _buffer = new String( buffer, start, length, WebResponse.getDefaultEncoding() ).toCharArray();
_name = nextToken();
String attribute = "";
|