На данный момент я пытаюсь начать работу с Spring MVC. Пробовав вещи, я столкнулся с проблемой кодирования.
Я хочу отображать символы UTF-8 на моих JSP-страницах, поэтому я добавил String с символами 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
Обратите внимание, что следующий код <c:out value="ö" />
был отображен без ошибки кодирования.
Я также установил кодировку по умолчанию в UTF-8 в Springsource Tool Suite, но у меня все еще появляются неправильные символы.
Edit:
Возможно, я должен был упомянуть, что я использую Mac с OS X 10.6. Для разработки Spring я использую набор инструментов Springsource Tool от Spring (http://www.springsource.com/developer/sts). Надеюсь, что это поможет выяснить, что не так с моей настройкой.
Изменить 2:
Благодаря McDwell, я просто попробовал использовать "\u00f6lm"
вместо "ölm"
в моем контроллере, и проблема с кодировкой на странице JSP исчезла.
Означает ли это, что мои .java файлы закодированы с неправильным набором символов? Где я могу изменить это в Eclipse?
Спасибо.