Кодировка Spring MVC UTF-8

В настоящий момент я пытаюсь начать работу с Spring MVC. Пробуя вещи, я столкнулся с проблемой кодирования.

Я хочу отображать символы UTF-8 на своих страницах JSP, поэтому я добавил строку с символами UTF-8 в свой ModelAndView. Это выглядит так:

@Controller
public class HomeController {

    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

    @RequestMapping(value="/", method=RequestMethod.GET)
    public ModelAndView home() {
        logger.info("Welcome home!");
        return new ModelAndView("home", "utftest", "ölm");
    }

}

На странице JSP я просто хочу отобразить строку с символами UTF-8 следующим образом:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Home</title>
</head>
<body>
    <h1>Hello world!</h1>
    <p><c:out value="ö" /></p>
    <p><c:out value="${utftest}"></c:out></p>
</body>
</html>

В результате я получаю следующее:

Hello world!

ö

ölm

Обратите внимание, что следующий код отображалось без ошибки кодировки. Я также установил кодировку по умолчанию на UTF-8 в Springsource Tool Suite, но я все еще получаю неправильные символы.

Изменить:

Возможно, мне следовало упомянуть, что я использую Mac с OS X 10.6. Для разработки Spring я использую Springsource Tool Suite от Spring (http://www.springsource.com/developer/sts). Надеюсь, это поможет выяснить, что не так с моей настройкой.

Редактировать 2:

Благодаря МакДвеллу я только что попробовал использовать "\ u00f6lm" вместо "ölm" в моем контроллере, и проблема с кодировкой на странице JSP исчезла.

Означает ли это, что в моих файлах .java используется неправильный набор символов? Где я могу изменить это в Eclipse?

Спасибо.

60
задан OemerA 8 May 2011 в 16:26
поделиться