ПРИМЕЧАНИЕ. Вся текстовая информация, хранящаяся в компьютере, сохраняет символы, которые мы знаем (китайские или английские персонажи) в определенной таблице кодирования (0, 1, 0, 1). Бинарный процесс от символов до компьютерного хранилища - кодировка, а процесс от чтения двоичного к тексту называется декодированием. Существует много разных таблиц кодирования для кодирования символов, поэтому, если формат кодирования и формат декодирования не являются одной и той же таблицей кода, появится искаженный код. Чтобы избежать искаженного кода, вам необходимо использовать ту же таблицу кода при сохранении и чтении.
В веб -программировании Java часто есть искаженные коды. Теперь позвольте мне подробно объяснить, как установить их, чтобы избежать искаженных кодов.
1 кодировка веб -страницы
При написании веб-страницы вам необходимо указать формат кодирования веб-страницы и использовать <meta http-equiv = "content-type" content = "text/html; charset = utf-8">, чтобы указать его. В настоящее время, когда браузер считывает или отправляет запрос, данные будут сохранены или отправлены в указанном формате кодирования. Здесь он в форме UTF-8.
Например, фрагмент кода:
<form action = "/pro1/bb" method = "post"> username: <input type = "text" name = "username"> <br> Пол: мужчина <input type = "radio" name = "gende" value = "male"> женский <intopt type = "radio" name = "gende" value = "fember"> <br> Любимый цвет: <br> red <input vy type = "name =" value = ">" red value = "value" "value"> "value" value ">" value "" green "=" value ""> "green" = "value"> "value" ">" type = "fackbox" name = "color" value = "green"> blue <input type = "fackbox" name = "color" value = "blue"> <br> страны из <select name = "country"> <vitue value = "Китай"> Китай </option> <опция value = "us"> us </option> <vitue value = "Japan"> intorment </select> </select> <brbr> <input type = "viop =" vit vitive = "vit viop =" viop = "vit vinit"? value = "сбросить"> </form>
2 Данные запроса на чтение бэкэнда
В сервисе Java Web, чтобы получить запрошенные данные, отправленные бинарные данные должны быть декодированы в соответствии с соответствующей таблицей кода, чтобы получить соответствующую человеческую строку. В этом примере используется метод POST, поэтому при обработке запроса POST вам необходимо установить формат кодирования перед получением параметров запроса Китая, в противном случае произойдет искаженная кода. Потому что сервер использует таблицу кодирования ISO-8859-1 по умолчанию для декодирования.
Конечно, если вы хотите вывести китайские символы в выводе, вам также необходимо использовать унифицированное кодирование символов. Вот UTF-8, код выглядит следующим образом
public void Dopost (httpservletRequest, httpservletresponse response) бросает ServletException, ioException {request.setcharacterencoding ("UTF-8"); response.setContentType ("text/html; charset = utf-8"); Printwriter Out = response.getWriter (); String username = request.getParameter ("имя пользователя"); String Gender = request.getParameter ("Пол"); String [] colors = request.getParametRovalues ("color"); String Country = request.getParameter ("страна"); out.println ("<! Doctype html>"); out.println ("<Head> <Title> Test Servlet </title> </head>"); out.println ("<body>"); out.print ("<h1> Ниже приведен ваш вход </h1>"); out.print ("<p>"); out.print ("Ваше имя пользователя:"+имя пользователя+"<br>"); out.print ("Ваш пол:"+гендер+"<br>"); Out.print («Ваш любимый цвет:»); для (String CR: Colors) {out.print (cr+""); } out.print ("<br>"); out.print ("Ваша страна:"+страна+"<br>"); out.print ("</p>"); out.println ("</body>"); out.println ("</html>"); }ПРИМЕЧАНИЕ: request.setcharacterencoding ("UTF-8"); Здесь действителен только для содержания запрашивающей организации. Параметры запроса POST хранятся в предприятии запроса, а параметры запроса метода GET размещены после URL и начинаются с отметки вопроса, и '&' Подключить несколько параметров. Поэтому, если вы хотите получить параметры метода GET, вам необходимо использовать ручное декодирование или использовать фильтр.
Метод ручного декодирования, ради простоты, только гендерных декодов, и в реальном использовании каждый параметр должен быть декодирован: String Gender = New String (req.getParameter («Пол»). Getbytes («iso-8859-1»), «UTF-8»);
На этом этапе явление китайских иероглифы, искаженных на сети и на стороне сервера, может быть идеально решено. Помните одну вещь: искаженная с одной стороны, потому что кодирование и декодирование используют разные таблицы кодирования. Вы должны использовать ту же таблицу кодирования для решения проблемы.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.