Сервер переехал на новый сайт http://www.oraclegis.com/blog. Здесь идет ретрансляция

среда, 3 декабря 2008 г.

Русский язык в параметрах JSP страниц (UTF-8, Windows-1251)

Борьба с детскими болезнями поддержки русского языка уже начинает надоедать. Связано это в первую очередь с исходной заточенностью многих технологий именно на ASCII символы, ну или, в крайнем случае, на западноевропейскую кодировку.

Очередная проблема с которой я столкнулся – это передача параметров на JSP страницу.

Начал я вот с такого куска кода JSP

<%@ page contentType="text/html;charset=UTF-8" %>
<% query2 = request.getParameter("query_1"); %>

<form action="jview1.jsp" name="jview" method="post">
query 2: <TEXTAREA style="font-size:28px;   font-family: arial, helvetica, sans-serif;" cols=40 name=query_2 rows=6><%=(query2!=null)?query2:""%></TEXTAREA>
</form>

Собственно, что может быть проще. Запостили страничку в UTF-8 с текстовым полем query_2, вытащили его из запроса и обратно затянули в это поле.

А вот и не просто. Вводим в поле текст следующего содержания

“select * from moscow where name='Город'”.

А в ответ получаем

“select * from moscow where name='Город'”.

Для решения этоq проблемы, в конце концов, пришел к вот такому коду (может не оптимальный и не универсальный, но в моем случае работает):

  String query1_temp = request.getParameter( "query_1" );
  query1 =query1_temp==null?null:new String(query1_temp.getBytes("ISO-8859-1"),response.getCharacterEncoding());

Если кто-то сделал по-другому – делитесь. :)

Комментариев нет: