axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johannes Wagener (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-4309) JSONMessageFormatter isnt using the correct charset encoding
Date Wed, 15 Apr 2009 05:14:15 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-4309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12699056#action_12699056
] 

Johannes Wagener commented on AXIS2-4309:
-----------------------------------------

similiar problem with incoming json requests, when they get processed  in JSONDataSource getJSONString:

                char temp = (char)jsonInputStream.read();
                jsonString = "";
                while ((int)temp != 65535) {
                    jsonString += temp;
                    temp = (char)jsonInputStream.read();
                }

the request data is being read from the raw inputStream -> UTF-8 characters will break.
using an InputStreamReader with the appropriate charset should fix this:

                InputStreamReader inputStreamReader = new InputStreamReader (jsonInputStream,charsetName);
              char temp = (char)inputStreamReader.read();
                jsonString = "";
                while ((int)temp != 65535) {
                    jsonString += temp;
                    temp = (char)inputStreamReader.read();
                }

> JSONMessageFormatter isnt using the correct charset encoding
> ------------------------------------------------------------
>
>                 Key: AXIS2-4309
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4309
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>    Affects Versions: 1.4.1
>            Reporter: Johannes Wagener
>
> When using JSONMessageFormatter, i had some trouble with german umlauts. The response
wasnt in the correct encoding (UTF-8)
> After debugging for while, i found out that getJSONWriter in JSONMessageFormatter.java
and JSONBadgerfishMessageFormatter.java
> is ignoring the requested charset encoding:
>     protected XMLStreamWriter getJSONWriter(OutputStream outStream) {
>         return new BadgerFishXMLStreamWriter(new OutputStreamWriter(outStream));
>     }
> In my case outputStreamWriter was writing in CP819 (or something like that), while the
response had a   
> Content-Type: application/json;charset=UTF-8
> so i changed it to:
>     protected XMLStreamWriter getJSONWriter(OutputStream outStream,Charset charset) {
>         return new BadgerFishXMLStreamWriter(new OutputStreamWriter(outStream, charset));
>     }
> when calling getJSONWriter i used:
>  Charset charset = Charset.forName(format.getCharSetEncoding());                    
>  XMLStreamWriter jsonWriter = getJSONWriter(out,charset);
> and catching the UnsupportedEncodingException.
> After changing these 2 files, everything worked as expected.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message