Hello: I' looking this example and I'd like to understand some things:
1) Does 'Encoding: ISO-8859-1' refer to the HTTP header for defining content charset ? How does Apache CXF choose what is the HTTP header charset to return to a client ? 2) If HTTP response charset is ISO-8859-1 but XML encoding is another ( like this example ), What is the priority to decode the message ? I guess that encoding document is first one , but I'm not sure Thanks 2013/3/13 Daniel Kulp <[email protected]> > > On Mar 13, 2013, at 7:39 AM, Angel L. Garcia <[email protected]> wrote: > > I´ve a problem with client encoding, when I read some element with > special characters in response I get bad characters like �� > > > > The log in is: > > > > INFO: Inbound Message > > ---------------------------- > > ID: 1 > > Response-Code: 200 > > Encoding: ISO-8859-1 > > Content-Type: text/xml > > Headers: {connection=[Keep-Alive], Content-Language=[es-ES], > content-type=[text/xml], Date=[Wed, 13 Mar 2013 08:05:05 GMT], > transfer-encoding=[chunked], X-Backside-Transport=[OK OK] > > Messages: > > Message (saved to tmp file): > > Filename: > /tmp/tomcat6-tomcat6-tmp/cxf-tmp-966013/cos8205745368794988769tmp > > (message truncated to -1 bytes) > > > > Payload: <?xml version="1.0" encoding="UTF-8"?> > > <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > ...... > > > > I think the problem is that there are two different encodings "Encoding: > ISO-8859-1" and <?xml version="1.0" encoding="UTF-8"?>. > > Can I change the <?xml version="1.0" encoding="UTF-8"?> to <?xml > version="1.0" encoding="ISO-8859-1"?>? > > > > Thanks and best regards. > > Yea… that seems very wrong to me. Seems like a bit of an invalid message > as I'd expect the Content-Type to set a charset of utf-8. I would attempt > two things: > > 1) Stick an interceptor on the incoming chain that would set: > message.put(Message.ENCODING, "UTF-8") so that CXF would treat it as > UTF-8. > > 2) You can try chaining the <?xml> header via an input stream filter or > similar. > > 3) Remove the InputSteam from the message contents, wrapper it with an > InputStreamReader using whichever encoding works, and set that into the > message content as a Reader.class. CXF will then delegate to that to > handle the charset stuff. > > > > > -- > Daniel Kulp > [email protected] - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com > >
