spring-mvc – 字符编码Spring MVC

我在使用土耳其语字符时遇到麻烦…在我的JSP页面中,没有问题……但是,当来自
Java端的警报时,土耳其字符(ŞşİığĞüÜç…)看起来像那样(ı,?,ü ,§,A,…)

在JSP页面中,我使用此代码,ı可以解决土耳其字符问题

<%@ page contentType="text/html;charset=UTF-8" language="java"%>

在Spring MVC配置中,我尝试了很多方法但是我没有成功…例如在我的mvc配置类中,我设置了我的MessageSource;

@Bean
public MessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    messageSource.setBasename("classpath:messages");
    messageSource.setUseCodeAsDefaultMessage(true);
    messageSource.setDefaultEncoding("UTF-8");
    messageSource.setCacheSeconds(0);
    return messageSource;
}

在这个程序中,我尝试重置密码,我输入了取消注册的电子邮件地址.最后我得到了异常,以下是异常代码博客.

@Autowired
private MessageSource messages;
...

@ExceptionHandler({ UserNotFoundException.class })
public ResponseEntity<Object> handleUserNotFound(final RuntimeException exception, final WebRequest request) {
    logger.error("404 Status Code", exception);
    final GenericResponse bodyOfResponse = new GenericResponse(messages.getMessage("message.userNotFound", null, request.getLocale()), "UserNotFound");
    return handleExceptionInternal(exception, bodyOfResponse, new HttpHeaders(), HttpStatus.NOT_FOUND, request);
}

在我的messages_tr_TR.properties文件中,

...
message.userNotFound=Kullanıcı Bulunamadı
...

但是在JSP页面中,这个警报显示出来;

KullanıcıBulunamadı

我怎么解决这个问题..

最佳答案 评论后续,您也可以在响应标题中设置编码.如果你要返回json就是一个例子

HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.add("Content-Type", "application/json; charset=utf-8");
return handleExceptionInternal(exception, responseHeaders, HttpStatus.NOT_FOUND, request);
点赞