Просто решите проблему с jsp китайским заблудшим
Начинающий JSP создает простую страницу ответа.
Конкретный код выглядит следующим образом:
<form action="test.jsp">
username : <input type="text" name="username" />
<br />
<input type="submit">
</form>
Hello <%=request.getParameter("username")%>
Сохраните как файл test.jsp, запустите доступ tomcat, появится следующее изображение:
Введите в поле: vae Появится следующее изображение:
Но «имя пользователя» выглядит очень неудобно, поэтому я решил изменить его на «имя пользователя».
<form action="test.jsp">
用户名 : <input type="text" name="username" />
<br />
<input type="submit">
</form>
Hello <%=request.getParameter("username")%>
В этот раз возникла проблема:
появилась строка искаженных символов там, где должно было появиться «имя пользователя»:
Так называемый искаженный код в ответе - это искаженный код на странице отображения, потому что данные страницы помещаются в ответ с сервера, а затем отправляются в браузер. Если данные в ответе не могут быть проанализированы обычным образом, возникнет искаженная проблема.
Почему на английском нет проблем? Поскольку в iso-8859-1, gb2312, utf-8 и любом из форматов кодирования формат кодировки для английского языка одинаков, каждый символ занимает 8 цифр, а китайский язык вызывает затруднения, а следующий китайский язык занимает 16 цифр под gb2312. , Два байта, а под utf-8 китаец занимает 24 бита, три байта. Браузер отрежет эти символы посередине, не зная метода кодирования, и они будут испорчены при повторном отображении. Следовательно, чтобы решить искаженную проблему, мы должны сообщить браузеру, какой метод кодирования мы используем.
В Windows формат кодировки файла по умолчанию - gb2312.
Решение состоит в следующем:
(1) Добавьте информацию о кодировке в ответ http (ответ).
<%@ page contentType="text/html; charset=gb2312"%>
Этот абзац должен быть помещен в первую строку страницы jsp, чтобы указать тип ответа и формат кодировки. ContentType - это text / html, что означает содержимое html, а charset означает, что кодировка - gb2312. Таким образом браузер может получить формат кодировки из ответа.
(2) Укажите формат кодировки в html
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>title</title>
</head>
Мета-часть используется для указания формата кодировки текущего html. Обратите внимание, что этот абзац должен быть помещен в тег заголовка и размещен в верхней части тега заголовка. Если он не находится наверху, проблемы могут возникнуть под т. Е., Особенно если в заголовке есть китайский язык. под.
Две вышеупомянутые проверки предназначены для того, чтобы убедиться, что вывод веб-страницы jsp является китайским.
Измененный код выглядит следующим образом:
<%@ page contentType="text/html; charset=gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>title</title>
</head>
<body>
<form action="test.jsp">
用户名 : <input type="text" name="username" />
<br />
<input type="submit">
</form>
</body>
</html>
Запускаем еще раз: