axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tony Dean <Tony.D...@sas.com>
Subject [Axis2] I18N problem
Date Sun, 29 Jun 2008 06:19:01 GMT
Hi,

I have narrowed down an I18N problem when using Simplified Chinese characters in payload to
Axis2 client side.

I have an Axis2 client using ServiceClient to send a SOAP request to my service.  For example
a couple of characters in the payload are as follows:

U+4e2d U+6587  U+6d4b U+8bd5

When the service receives these characters, they appear as follows:

U+002d U+6587 U+004b U+8bd5

The high-order byte of the 1st and 3rd characters are incorrect.

When the Axis2 ServiceClient converts the payload to UTF-8 for sending across the wire, these
bytes become (as seen in soapMonitor):
2de6 9687 4be8 af95

I think that they should be:
e4b8 ade6 9687 e6b5 8be8 af95

Can anyone explain what's going on?  Seems like an easy transformation of encodings for wire-format,
but something is not quite right.

To replicate try the following:

        ServiceClient client = new ServiceClient(ctx, null);
                     ...

        String value = new String("Hello world: \u4e2d\u6587\u6d4b\u8bd5");
        OMElement response = client.sendReceive(getPayload(value));

The Asian characters are not sent as expected.

Thanks for any insight.

I'll enter a bug if it so warrants.



Tony Dean
SAS Institute Inc.
919.531.6704
tony.dean@sas.com

SAS... The Power to Know
http://www.sas.com



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message