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