Просто решите проблему с jsp китайским заблудшим

Просто решите проблему с 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>

Запускаем еще раз:

Вставьте описание изображения сюда

рекомендация

отblog.csdn.net/ws15168689087/article/details/109412317