J'ai dans mon application Web Spring MVC Java pilotée par Annotation exécutée sur le serveur Web de la jetée (actuellement dans le plugin maven jetty).
J'essaie de prendre en charge AJAX avec une méthode de contrôleur renvoyant uniquement le texte d'aide String. Les ressources sont en codage UTF-8, tout comme la chaîne, mais ma réponse du serveur est fournie avec
content-encoding: text/plain;charset=ISO-8859-1
même quand mon navigateur envoie
Accept-Charset windows-1250,utf-8;q=0.7,*;q=0.7
J'utilise en quelque sorte la configuration par défaut du printemps
J'ai trouvé un indice pour ajouter ce bean à la configuration, mais je pense qu'il n'est tout simplement pas utilisé, car il indique qu'il ne prend pas en charge l'encodage et qu'un par défaut est utilisé à la place.
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
</bean>
Mon code de contrôleur est (notez que ce changement de type de réponse ne fonctionne pas pour moi):
@RequestMapping(value = "ajax/gethelp")
public @ResponseBody String handleGetHelp(Locale loc, String code, HttpServletResponse response) {
log.debug("Getting help for code: " + code);
response.setContentType("text/plain;charset=UTF-8");
String help = messageSource.getMessage(code, null, loc);
log.debug("Help is: " + help);
return help;
}