[ 
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]

Reply via email to