Index: C:/workspace/axis1/src/org/apache/axis/components/encoding/UTF8Encoder.java =================================================================== --- C:/workspace/axis1/src/org/apache/axis/components/encoding/UTF8Encoder.java (revision 372539) +++ C:/workspace/axis1/src/org/apache/axis/components/encoding/UTF8Encoder.java (working copy) @@ -28,6 +28,9 @@ * @see UTF 8 explained */ class UTF8Encoder extends AbstractXMLEncoder { + protected static final String MASK_PREFIX = "&#x"; + protected static final String MASK_SUFFIX = ";"; + /** * gets the encoding supported by this encoder * @@ -83,9 +86,15 @@ Integer.toHexString(character), xmlString.substring(0, i))); } else if (character > 0x7F) { - writer.write("&#x"); - writer.write(Integer.toHexString(character).toUpperCase()); - writer.write(";"); + byte[] utf8Bytes = String.valueOf(character) + .getBytes(XMLEncoderFactory.ENCODING_UTF_8); + writer.write(MASK_PREFIX); + writer.write(Integer.toHexString(utf8Bytes[0] & 0xff).toUpperCase()); + writer.write(MASK_SUFFIX); + + writer.write(MASK_PREFIX); + writer.write(Integer.toHexString(utf8Bytes[1] & 0xff).toUpperCase()); + writer.write(MASK_SUFFIX); } else { writer.write(character); }