Всем салют!
PrintWriter out = response.getWriter();
Statement statement = dbcon.createStatement();
String query = "SELECT test_string FROM test_table;";
out.println(rs.getString("test_string"));
statement.close();
Вот такой кусочек кода. Соединяется с БД, отрабатывает, выводит. Но выводит не в нужной мне кодировке. Как локализировать результаты выборки?
В качестве back-end'ов JDK1.4.2_5, tomcat5.0.28, Postgresql7.4.5, PgJDBC последние из постгресосвского тарбола. FreeBSD 5.x в качестве операционки.
локализация результвтов JDBC соединения
Модератор: Absurd
bignom, когда получаешь коннекцию, ты можешь указать кодировку.
См. метод DriverManager.getConnection(String url, Properties info)
одно из пропертей и есть CHARSET. Не уверен правда, что это свойство имеет смысл для всех драйверов, так что смотри документацию к PgJDBC.
См. метод DriverManager.getConnection(String url, Properties info)
одно из пропертей и есть CHARSET. Не уверен правда, что это свойство имеет смысл для всех драйверов, так что смотри документацию к PgJDBC.
Даже самый дурацкий замысел можно воплотить мастерски
ты почти прав.
совсем правильная строка соединения с Postgresql будет такоа:
jdbc
ostgresql://host
ort/database_name?charSet=CHARSET
но это не решило моей проблемы. "На экране" поп прежнему ???? ???? ????
В БД данные хранятся в WIN (Cp1251). А Java использует UNICODE. Может копануть в перекодирование результатов выборки перед юзанием? Если "да", то как?
(я совсем новенький)
совсем правильная строка соединения с Postgresql будет такоа:
jdbc


но это не решило моей проблемы. "На экране" поп прежнему ???? ???? ????
В БД данные хранятся в WIN (Cp1251). А Java использует UNICODE. Может копануть в перекодирование результатов выборки перед юзанием? Если "да", то как?

-
- Сообщения: 14
- Зарегистрирован: 26 авг 2004, 09:17
- Откуда: Самара
- Контактная информация:
Нужно перекодировать строку при помощи конструктора String( byte[] bytes, String charsetName)
Пример:
Пример:
Код: Выделить всё
String oldString = "Пример текста";
String newString = new String( oldString.getBytes("cp1251"), "UTF-8");