Страница прекращает рендеринг и выдает ошибку синтаксического анализа XML, такую как «где-то в моем javascript ожидается точка с запятой» или «Инструкция обработки не найдена» и т. Д.
Это произойдет, если вы объявите XHTML как XML вместо «HTML с синтаксисом XML». Действительно избавиться от этой декларации XML. Если бы вы могли, я бы пошел дальше и просто использовал HTML как настоящий HTML, то есть использовал <!doctype html>
или любой другой HTML strict
тип документа. Также см. http://hsivonen.iki.fi/doctype/.
<% request.setCharacterEncoding("UTF-8"); %>
Первая деталь в том, что request.setCharacterEncoding("UTF-8")
- это излишне. На этом этапе уже слишком поздно, чтобы установить это. Вторая деталь в том, что для этого вы используете скриптлеты. Я рекомендую не делать этого. Используйте taglibs / EL, где это необходимо. Если это невозможно, тогда логика кода фактически принадлежит классу Java, прямо или косвенно - классу сервлетов или фильтров.
Удаление "charset = utf-8" из response.setContentType заставляет страницу отображаться. Единственная проблема заключается в том, что → отображается как квестовый знак "?"
response.setContentType(..)
является излишним, если вы уже установили его в качестве тега <meta>
в HTML <head>
, который, на мой взгляд, намного чище.
Наконец, вам также нужно установить в ответ кодировку символов (это отличается от установки типа контента!) Следующим образом:
<%@ page pageEncoding="UTF-8" %>
Кстати, это также неявно создает тег <meta>
для content-type
. Дополнительную справочную информацию и советы можно найти здесь .
Надеюсь, это поможет.