Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > jsp+jdbc кодировка


Автор: bobanman 21.5.2014, 00:55
Всем доброго времени суток. Проблема следующая:

Есть веб-приложение jsp+jquery. Есть некая jsp-страница в которой редактируются данные, она в кодировке:

Код

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


в поля ввода вводятся кириллические символы. Дальше по нажатию кнопки "ок" Аяксом данные отсылаются на обработку другой jsp, которая в той же кодировке 

Код

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


Эта страница разбирает данные, вызывает класс записи данных в БД (Oracle через JDBC), дергает соотв метод, и рисует некий ответ в виде xml для исходной jsp-ухи.

Внимание вопрос:

Данные в БД записываются корректно, включая киррилицу. И только одно поле вместо киррилицы содержит символы ???. И поле это заполняется не из полей формы ввода, а из метода вспомогательного класса, т.е. буковки, которые не раскодировались берутся из метода, что-то типа такого:

Код

public class BusinessLogic
{
        public String getContract(String contractNum)
        {
            StringBuffer contract = new StringBuffer();
            contract.append("дог. ");
            contract.append(contractNum);
            return contract.toString();
        }    
}


Ну т.е. в классе, который постит в БД в определенное поле вставляется значение:

Код

 BusinessLogic bl = new BusinessLogic();
 ...
 preparedStatement.setString(3, bl.getContract(contractNum));


а в базу это поле вместо дог. 2134234234 прописывается как ???. 2134234234

Кто что может посоветовать? 

Автор: romawint 2.7.2014, 08:52
в Tomcat server.xml пропиши URIEncoding="UTF-8"

Пример:
Код

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"  URIEncoding="UTF-8"/>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)