Борьба с детскими болезнями поддержки русского языка уже начинает надоедать. Связано это в первую очередь с исходной заточенностью многих технологий именно на 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());
Если кто-то сделал по-другому – делитесь. :)
Комментариев нет:
Отправить комментарий