I've been creating such a trick for year, can't believe we are still here
today.
Not a useful comment but this thread made me react again.

--
Jean-Louis Monteiro
http://twitter.com/jlouismonteiro
http://www.tomitribe.com

On Sat, Jun 27, 2015 at 4:35 PM, Romain Manni-Bucau <rmannibu...@gmail.com>
wrote:

> Hi
>
> sounds normal (http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q1),
> maybe add a filter setting the encoding (request.setCharacterEncoding(
> "UTF-8");)
>
> Le 27 juin 2015 12:17, "using namespace" <footpri...@bk.ru> a écrit :
>
> > I have deployed a web-service on TomEE 1.7.1 and currently having
> encoding
> > problem when I work with request xml data. The web-service implements one
> > method, which receives and xml data inside a SOAP message like following:
> >
> > <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/
> > "
> > xmlns:soap="http://tempuri.org/soaprequest";>
> >    <soapenv:Header/>
> >    <soapenv:Body>
> >       <soap:soaprequest>
> >          <soap:streams>
> >             <soap:soapin contentType="?">
> >                <soap:Value>
> >
> >
> >                      <tag_a>cyrillic text here...</tag_a>
> >
> >
> >                </soap:Value>
> >             </soap:soapin>
> >          </soap:streams>
> >       </soap:soaprequest>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> > Inside the web-service implementation class I retrieve everything from
> >  tag and cast it to String:
> >
> >                         Element soapinElement = (Element)
> > streams.getSoapin().getValue().getAny();
> >                         Node node = (Node) soapinElement;
> >                         Document document = node.getOwnerDocument();
> >                         DOMImplementationLS domImplLS =
> > (DOMImplementationLS)
> > document.getImplementation();
> >                         LSSerializer serializer =
> > domImplLS.createLSSerializer();
> >                         LSOutput output = domImplLS.createLSOutput();
> >                         output.setEncoding("UTF-8");
> >                         Writer stringWriter = new StringWriter();
> >                         output.setCharacterStream(stringWriter);
> >                         serializer.write(document, output);
> >                         String soapinString = stringWriter.toString();
> >
> > And then I put soapinString into Oracle database CLOB column.
> >
> > Everything is great when SOAP message is encoded in UTF-8, but I get
> > unreadable characters when SOAP message has different encoding, like
> CP1251
> > and what I see in Oracle as a result is:
> >
> >
> >
> >                      <tag_a>РћР’Р” Р’РћР</tag_a>
> >
> >
> >
> > I tried encoding conversion like this:
> >
> >                         Element soapinElement = (Element)
> > streams.getSoapin().getValue().getAny();
> >                         Node node = (Node) soapinElement;
> >                         Document document = node.getOwnerDocument();
> >                         DOMImplementationLS domImplLS =
> > (DOMImplementationLS)
> > document.getImplementation();
> >                         LSSerializer serializer =
> > domImplLS.createLSSerializer();
> >                         LSOutput output = domImplLS.createLSOutput();
> >                         ByteArrayOutputStream byteArrayOutputStream = new
> > ByteArrayOutputStream();
> >                         output.setByteStream(byteArrayOutputStream);
> >                         byte[] result =
> > byteArrayOutputStream.toByteArray();
> >                         InputStream is = new
> ByteArrayInputStream(result);
> >                         Reader reader = new InputStreamReader(is,
> > "windows-1251");
> >                         OutputStream out = new ByteArrayOutputStream();
> >                         Writer writer = new OutputStreamWriter(out,
> > "UTF-8");
> >                         writer.write("\uFEFF");
> >             char[] buffer = new char[10];
> >             int read;
> >             while ((read = reader.read(buffer)) != -1) {
> >                 writer.write(buffer, 0, read);
> >             }
> >             reader.close();
> >             writer.close();
> >             serializer.write((Node) out, output);
> >             String soapinString = output.toString();
> >
> > But it produces something that looks like byte code.
> > I would like to ask for some suggestions on possible ways to resolve
> > encoding conversion to UTF-8.
> >
> >
> >
> > --
> > View this message in context:
> > http://tomee-openejb.979440.n4.nabble.com/Encoding-issue-tp4675408.html
> > Sent from the TomEE Users mailing list archive at Nabble.com.
> >
>

Reply via email to