[
https://issues.apache.org/jira/browse/HTTPCLIENT-1149?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13160962#comment-13160962
]
Sebb commented on HTTPCLIENT-1149:
----------------------------------
RFC-3629 section 6. Byte order mark (BOM) says:
"o A protocol SHOULD also forbid use of U+FEFF as a signature for
those textual protocol elements for which the protocol provides
character encoding identification mechanisms, when it is expected
that implementations of the protocol will be in a position to
always use the mechanisms properly."
The Wikipedia artice footnote [3] says "Use of a BOM is neither required nor
recommended for UTF-8, ..."
The document itself includes the encoding.
This all suggests that it is wrong for the server to send the BOM.
Note: there is already a BOM decoder class in Apache Commons IO:
http://commons.apache.org/io/api-release/org/apache/commons/io/input/BOMInputStream.html
> EntityUtils.toString should detect Byte order mark (BOM) and remove it if
> present
> ---------------------------------------------------------------------------------
>
> Key: HTTPCLIENT-1149
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1149
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient
> Affects Versions: 4.1.2
> Environment: Windows
> Reporter: Ian Beaumont
> Priority: Minor
> Labels: BOM, EntityUtils
>
> The Byte order mark at the start of the input stream should be detected and
> removed by EntityUtils.toString, otherwise strange unwanted characters are
> left at the start.
> This link lists possible Byte order markings
> http://en.wikipedia.org/wiki/Byte_order_mark
> I'm not sure if EntityUtils.toString using the BOM to try to detect the
> encoding, but if it doesn't then it should.
> Example URL that is causing this issue is mircosoft virtual earth WSDL file:
> HttpClient httpclient = new DefaultHttpClient();
> HttpGet httpget = new
> HttpGet("http://dev.virtualearth.net/webservices/v1/searchservice/searchservice.svc?wsdl");
> HttpResponse response = httpclient.execute(httpget);
> HttpEntity entity = response.getEntity();
> String textContents = EntityUtils.toString(entity);
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]