Ciao a tutti,

ho un problema con la codifica dei caratteri in una servlet e ne esco...

Queste sono le parti salienti del codice:

codice:
public class MyServlet extends HttpServlet
{ 
    @Override
    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws ServletException, IOException
    {
        ...
        ...
        
        String output = XmlConverter.toXml(xmlObject);

        response.setContentType("text/xml; charset=UTF-16");
        response.setCharacterEncoding("UTF-16");
        response.getWriter().println(output);
    }
}
Il codice che mi genera la stringa xml è il seguente:

codice:
public static String toXml(Object map)
{
    XStreamGae xstream = new XStreamGae(new DomDriver("UTF-16", new XmlFriendlyNameCoder("_-", "_")));
    xstream.autodetectAnnotations(true);
    return xstream.toXML(map);
}
(la classe XStreamGae è una versione custom della classe XStream adattata per funzionare su Google App Engine, dove hosto la servlet.)

Ora... Se faccio il deploy in locale tutto funziona alla perfezione.
Se faccio il deploy su Google App Engine invece ho problemi coi caratteri: le lettere accentate le vedo come dei simboli strani, idem per altri caratteri "particolari".

Perché?
Da codice mi pare di aver specificato UTF16 ovunque... Cosa mi sfugge?

Grazie