Tony,
It would be interesting to know if it is a problem with Axis2 or with
the UTF-8 implementation of the Java runtime environment. Can you test
that by calling getBytes("UTF-8") on the string and check whether the
result is correct?
Andreas
On 29 juin 08, at 08:19, Tony Dean wrote:
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
[EMAIL PROTECTED]
SAS... The Power to Know
http://www.sas.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]