LINUX.ORG.RU

[java][кодировка] параметр jsp-страницы

 ,


0

0

ести примерно такой фрагмент jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
   
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>JSP Page</title>
    </head>
<body>
......
<form method=get>
      <input type="text" name="keys" value="<% out.print(request.getParameter("keys")); %>" >
  <input type=submit value="Submit">
  </form>
<% out.println(request.getParameter("keys")); %>
в заголовке страницы русские буквы в значении отображаются нормально, а в теле страницы - как нечто странное, вроде вапваÐ. крутится это на томкате6 локаль ОС - utf8.

каким образом можно полечить это изменение кодировки?


В тэгах JSP-странички не надо забывать указывать кодировку отдаваемого контента:

<html>
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<head>
...

Сама страничка, естественно, должна быть в той же кодировке.

iZEN ★★★★★
()

есть еще такое решение. подключаем теглиб спринг фреймворка

<%@taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>

дале делаем так.

<sf:form action="response.jsp" method="get" acceptCharset="utf-8"> <input type="text" name="name" size="300"> <button type="submit" value="press me" /> </sf:form>

Проблемма лечется со 100% вероятностью.

Valor
()
Ответ на: комментарий от iZEN

Согласен херню спорол, достаточно этого в server.xml

<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" useBodyEncodingForURI="utf-8"/>

Valor
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.