Tomcat неправильно кодирует строковые литералы, содержащие символы Юникода. Проблема возникает на сервере Linux, но не на моей машине разработки (Windows). Он влияет ТОЛЬКО на строковые литералы (не на строки, читаемые из БД или из файла !!!).
- Я установил
URIEncoding="utf-8"
в теге Connector (server.xml).
- Я использовал setCharacterEncoding ().
- Я проверил трассировку стека (нет фильтров, которые могли бы установить кодировку).
- Я установил переменную среды LANG
- Я проверял заголовки HTTP, и они правильные (Content-Type = text / plain; charset = utf-8)
- Я проверил кодировку в браузере, и она верна (UTF-8)
Ничего из вышеперечисленного не работает. Есть идеи о том, чего мне не хватает?
public class Test extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/plain;");
Writer w = resp.getWriter();
w.write("Μαλακία Latin"); //Some unicode characters
w.close();
}
Выше показано это в браузере.
ÎÎ »Î» Î · νικά Латинский