I set an EntityEnclosingMethod request entity to be a ByteArrayRequestEntity. 
This entity has the Java characters "\u4E2D\u6587" as the corresponding UTF8 
bytes (UTF8 = 0xE4,0xB8,0xAD,0xE6,0x96,0x87). This is confirmed by logging 
httpclient.wire.content. There I see the UTF8 values.

However what appears to really get transmitted is the corresponding Java 
characters rather than the UTF8 values! As this is supposedly a UTF8 encoded 
XML document the receiver is not best pleased. This is confirmed by performing 
HTTP sniffing using org.apache.axis.utils.tcpmon.My suspicion is that somehow a 
character handler is intervening? 

Debugging HttpConnection implied that the output stream is a 
BufferedOutputStream wrapping a java.net.SocketOutputStream. I had assumed that 
the socket streams would be byte oriented. The content type is set to 
'text/xml; chartset="utf-8"'.

I am normally using HttpClient 3.0 + but the latest 3.1 appeared to react 
exactly the same.



      

Reply via email to