Currently SOAPBody.getBytes() just calls getBytes() on the string object. This will use VM's default character set. That happens to be "Cp1252" on most systems, so any non LATIN characters in <Envelope> will get corrupt.
Likewise, when creating a String from the raw bytes default encoding is used. I think that as a temporary solution, encoding could be forced to UTF-8, since it is also hard coded as Content-Type ("text/xml; charset=utf-8") in Message and MimeUtils classes during serialization. What was the plan for supporting Unicode and other character sets? -Taras