Форумы по водной технике new!
Форумы по мото технике new!

Проблемы с кодировкой

JcCode Cloud, JcCode запчасти, Outofbox, JcTrade

Проблемы с кодировкой

Сообщение sdsmoto » 05 июл 2014, 04:35

Добрый день!

Программа jcoffline.

Выполняю запрос UPDATE motobase SET note=? WHERE origcode=?, и на месте комментария появляются казяблы:
Все мотоциклы из ЯпоÐ

Используемая кодировка UTF-8. Казяблы только вместо кириллицы, латиница отображается корректно, так же все пробелы, отступы и тд отображаются корректно.

Что мне сделать, чтобы этого не происходило? Может у вас какая-то особая кодировка должна быть на входе, т.к. я смотрел, в вашей бд выставлено utf-8.

Речь идет о запросе на моей машине к файлу data.jdb (sqlite), т.к. добавлять один и тот же комментарий к 500 записям по 1 это смерти подобно.
sdsmoto
 
Сообщения: 6
Зарегистрирован: 15 май 2014, 08:29

Re: Проблемы с кодировкой

Сообщение sdsmoto » 07 июл 2014, 03:42

И еще один вопрос: почему когда я удаляю какой-либо товар, то сам файл БД растет по размеру? Как полностью удалить оттуда записи, чтобы уменьшить размер файла БД?
sdsmoto
 
Сообщения: 6
Зарегистрирован: 15 май 2014, 08:29

Re: Проблемы с кодировкой

Сообщение Support » 10 июл 2014, 07:46

Здравствуйте.

В комментариях предполагалось использование информации уникальной для каждого объявления. Поэтому добавление идет по одному.

Выполняю запрос UPDATE motobase SET note=? WHERE origcode=?

Где Вы его выполняете? Возможно, что программа с помощью которой вы выполняете запрос некорректно работает с русскими символами, или некорректно преобразует их в UTF. Попробуйте поставить дополнение к firefox: SQLite Manager 0.8.1

Как полностью удалить оттуда записи, чтобы уменьшить размер файла БД

Это особенность не только SQLite, но и многих других БД, хранящих информацию в одном файле.
Вам будут полезны вот эти ссылки:
http://sqlite.org/lang_vacuum.html
http://habrahabr.ru/post/172085/
Support
 
Сообщения: 11
Зарегистрирован: 12 июл 2011, 08:53

Re: Проблемы с кодировкой

Сообщение sdsmoto » 14 июл 2014, 07:15

Где Вы его выполняете? Возможно, что программа с помощью которой вы выполняете запрос некорректно работает с русскими символами, или некорректно преобразует их в UTF. Попробуйте поставить дополнение к firefox: SQLite Manager 0.8.1

Программу написал сам на java. Работал по принципу схожим с работой с MySQL, только вот в случае с вашей БД у меня русские символы отображаются некорректно при чтении/записи. Правда, есть один момент - при работе со строками, программа понимает что именно в строке хранится (методы contain(), equal()), но выводит абру-кадабру.

Т.е. допустим:
Код: Выделить всё
rs = st.executeQuery("SELECT * FROM motobase");
String add_comment = new String(rs.getString("note").getBytes(), "utf-8");

Уже считывает что-то, что отображается при записи как "?", вместо символов, однако код
Код: Выделить всё
if(moto.add_comment.toLowerCase().contains("выполнена"))

Выполняется корректно.

Так же хочу отметить, что никакой разницы между
Код: Выделить всё
String add_comment = new String(rs.getString("note").getBytes(), "utf-8");

и
Код: Выделить всё
String add_comment = new String(rs.getString("note"));

На деле нет. Точнее - всё равно "?" вместо символов при чтении, и полная белеберда при записи.

В общем, как говорят японцы - вакаранай.

А за ссылки по поводу sqlite - спасибо, буду знать.
sdsmoto
 
Сообщения: 6
Зарегистрирован: 15 май 2014, 08:29

Re: Проблемы с кодировкой

Сообщение Support » 21 июл 2014, 09:46

Код: Выделить всё
русские символы отображаются некорректно при чтении/записи


Посмотрите какая кодировка у Вас установлена по умолчанию, скорее всего это cp1252. Если это так, то вам нужно кодировку по умолчанию поставить в UTF-8. Если это не поможет, нужно разбираться с Java, SQLite скорее всего, здесь не причем.
Support
 
Сообщения: 11
Зарегистрирован: 12 июл 2011, 08:53


Вернуться в Программы для учета запчастей на складе

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron