powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по кодировкам
8 сообщений из 8, страница 1 из 1
Вопрос по кодировкам
    #33262061
aquasnake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь сохранить в БД строку, содержащую символ "é".
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Statement stat;
Connection con;
 Class .forName("org.firebirdsql.jdbc.FBDriver").newInstance();
con = DriverManager.getConnection("jdbc:firebirdsql://" + host + "/" + dbName + "?lc_ctype=UNICODE_FSS", userName, pwd);
con.setAutoCommit(false);
stat = con.createStatement();
 int  rowCount = stat.executeUpdate(insertStr);
stat.close();
con.commit();
В дебагере символ показывается правильно. А в БД он сохраняется неправильно (при последующем чтении из БД он отображается квадратиком).

Пытаюсь применить
Код: plaintext
 new  String("é".getBytes(), "UTF-8")
Тогда сохраняется "?".
Как записать в БД этот долбаный сивол правильно?

Сервер Firebird 1.5.0.
Использую Jaybird FirebirdSQL-1.5.5JDK_1.4.
...
Рейтинг: 0 / 0
Вопрос по кодировкам
    #33262098
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquasnake
> Пытаюсь сохранить в БД строку, содержащую символ "e".
> Statement stat;Connection
> con;Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();con
> = DriverManager.getConnection("jdbc:firebirdsql://" + host + "/" +
> dbName + "?lc_ctype=UNICODE_FSS", userName,
> pwd);con.setAutoCommit(false);
> stat = con.createStatement();int rowCount =
> stat.executeUpdate(insertStr);stat.close();
> con.commit();
> В дебагере символ показывается правильно. А в БД он сохраняется
> неправильно (при последующем чтении из БД он отображается
> квадратиком).

> Пытаюсь применитьnew String("e".getBytes(), "UTF-8")
> Тогда сохраняется "?".
> Как записать в БД этот долбаный сивол правильно?

> Сервер Firebird 1.5.0.
> Использую Jaybird FirebirdSQL-1.5.5JDK_1.4.Тема==Ответить




то что он отображается неправильно еще не говорит о том, что он в бд
лежит неправильно.

кстати, что значит для строки "правильно лежать в БД"? это вроде зависит от
настроек БД (кодировка итп). в любом случае конечный результат - это
набор байтов на диске, которые можно по разному трактовать.

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вопрос по кодировкам
    #33262106
aquasnake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Логично.
Неправильно она там лежит, потому что, если ее аналогичным образом из БД брать, строка даже в дебагере показывается квадратиком.

База создается так:
Код: plaintext
1.
2.
3.
4.
CREATE DATABASE '......'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE  8192 
 DEFAULT  CHARACTER SET UNICODE_FSS;
...
Рейтинг: 0 / 0
Вопрос по кодировкам
    #33262225
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читайте внимательно описание вашего драйвера. Например в
Oracle, можно указать дополнительные параметры коннекта
через Properties.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    Class.forName( (String)htConnection.get("DRIVERCLASS") ).newInstance();
    Properties prInfo = new Properties();
    prInfo.put( "user",               (String)htConnection.get("USERNAME")     );
    prInfo.put( "password",           (String)htConnection.get("USERPASSWORD") );
    prInfo.put( "useUnicode",         "true"                                   );
    prInfo.put( "charSet",            "Cp1251"                                 );//for JDBC-ODBC
    Connection connectionDB = DriverManager.getConnection( (String)htConnection.get("CONNECTURL"), prInfo );
...
Рейтинг: 0 / 0
Вопрос по кодировкам
    #33262271
aquasnake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я вроде как правильно коннекчусь (lc_ctype=UNICODE_FSS)...
...
Рейтинг: 0 / 0
Вопрос по кодировкам
    #33263925
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой параметр(кодировка) БД указали при создании таблици?
...
Рейтинг: 0 / 0
Вопрос по кодировкам
    #33263928
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чуток затупил ... при создании базы.
...
Рейтинг: 0 / 0
Вопрос по кодировкам
    #33266052
Есть идея
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Посмотри как записалось в базу не дебагером а каким нить средством типа IBExpert с коннектом соответствующего чарсета.

2. Возможно волноваться нечего, т.к. основная идея записи такая. Ты кладешь символ в юникод при этом передаешь ему символ в другой кодировке (win1251 скажем), в базе он хранится в UTF-8, и запрашиваешь ты его в UTF-8, а смотришь этот символ приложением с кодировкой своей. Проверить это можно посмотреть побитно что суешь и что читаешь.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по кодировкам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]