我有多个返回JSON对象的REST端点。对于大多数语言环境,响应都是正确的(响应中正确显示了所有符号,并且Content-Type为application / json)。
如果我为Accept-Language标头提供值“ en_NL”,则Content-Type标头将更改为“ application / json; charset = ISO-8859-1。响应主体还包含错误的编码符号。(例如€变成â€)。
我不确定内容类型标头在哪里更改,并且在任何filter / config或jaxb中都找不到跟踪。
对于(取消)编组,我使用jaxb。该应用程序是使用Spring 4.1.7构建的,并托管在tomcat服务器上。
控制器示例:
@RequestMapping(value = "/by-bundle", method = RequestMethod.GET)
@ResponseBody
public SbMessageMap getByBundleCodes(final @RequestParam("groups") String[] groups) {
// return json object here
}
谢谢!
答案 0 :(得分:2)
您是否尝试在 @RequestMapping 中使用Produces参数设置字符集?
@RequestMapping(value = "/by-bundle", method = RequestMethod.GET, produces = "application/json; charset=UTF-8")