powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite3 Русские символы
11 сообщений из 11, страница 1 из 1
SQLite3 Русские символы
    #39146007
Ucali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здраствуйте, нужна ваша помощь.
Код на С++ в проект подключено sqlite3.h sqlite3.lib, все что необходимо.
Добавление записей в базу происходит через консоль (файл sqlite3.exe).
В некоторых столбцах записей имеются русские символы.
Подключение и получение записей происходит из кода проекта, все извлекается успешно, только вместо русских символов получаются следующие:
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39146009
Ucali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В чем может быть проблема?
http://rghost.ru/7WckrntLr.view
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39146014
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в кодировке естественно.
У тебя консоль в CP866, а клиент рисует в CP1251.
Проще всего: добавляй данные из клиента и не трогай консоль.
Чуть сложнее - смени кодировку консоли. Гугли команду mode con cp.
Более сложно, но потенциально более универсально - переходи на юникод, подключай ICU, и будет щастье.... Но это года через два-три. И реально нужно только если в базе больше двух языков одновременно.
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39146131
Ucali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
но ведь я добавлял не только через консоль, добавлял также и через navicat, там русские символы отображались, однако при извлечении из программы опять непонятные символы были. может дело в извлечении?
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39146792
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ucaliно ведь я добавлял не только через консоль, добавлял также и через navicat, там русские символы отображались, однако при извлечении из программы опять непонятные символы были. может дело в извлечении?А navicat работает с юникодом. А твоя программа в CP1251.
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39146934
Ucali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
теперь понял, благодарю.
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39147356
Ucali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запутался.

1. SQLite поддерживает Unicode? Т.е русскую символику он может хранить?
2. Если он может хранить Unicode то почему тогда клиентские программы извлекают из DB непонятные символы, т.е выходит что клиент не поддерживает Unicode и из-за этого извлекает некорректно символику?
Тобой было указано что нужно использоваться ICU, для корректного отображение русской символики в клиенте.
А если к примеру используется mysql connector C++? Можно ли обойтись без ICU? Имею в виду может в mysql connector C++ уже что-то вроде ICU имеется, и с помощью его API функций возвращается корректная символика. Или для connector C++ тоже необходим ICU?
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39147614
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ucali1. SQLite поддерживает Unicode?Нет.
SQLite это база данных. Ей без разницы какие там данные в таблице. Специальная поддержка юникода не входит в область задач СУБД. С точки зрения SQLite есть текстовые поля и не текстовые. Как именно закодирован текст в текстовом поле для SQLite совершенно не важно.

Ucali Т.е русскую символику он может хранить?Русская символика, это русский флаг, герб, гимн, матрешки, балалайки, медведи с водкой. Все то что намекает "это Россия".
А русскоязычные тексты пишутся кириллическим алфавитом.

Ucali2. Если он может хранить Unicode то почему тогда клиентские программы извлекают из DB непонятные символы,Потому что клиент должен знать как превратить набор нулей и единичек обозначенных как "текст" в набор индексов для визуального контрола использующего шрифт.

Ucali т.е выходит что клиент не поддерживает Unicode и из-за этого извлекает некорректно символику?Не обязательно. Клиент может поддерживать, но сам текст может изначально быть в не-юникодной кодировке.

UcaliТобой было указано что нужно использоваться ICU, для корректного отображение русской символики в клиенте.Нет, я такого не говорил. ICU к отображению текста не относится совершенно никак. ICU может помочь в запросах к базе, но и только.
В общем, сейчас тебе туда лезть совершенно не стоит. Подожди годика три-пять. Станешь мастером в С (не С++), тогда вернешься к ICU. Сейчас ты только запутаешься.

UcaliА если к примеру используется mysql connector C++?А при чем здесь mysql? MySQL это одна СУБД, SQLite это совершенно другая СУБД.
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39147628
Ucali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не правильно задал вопрос (про mysql).
Удалось получить вывод русскоязычного текста путем добавления и извлечения данных в самой клиентской программе.
Если добавление происходит через консоль, клиент отображает кириллицу некорректно. А имеются какие нибудь API для исправления этого?
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39147811
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UcaliУдалось получить вывод русскоязычного текста путем добавления и извлечения данных в самой клиентской программе.По хорошему, на этом и надо остановиться. Если твой клиент может загружать данные, зачем тебе консоль?


UcaliА имеются какие нибудь API для исправления этого?Конечно имеются. В частности уже упоминавшийся ICU, но в нем есть и еще много разного.
А тебе хватит любой функции типа 866<->1251. Просто погугли "convert 866 to 1251" и получишь сотни ссылок. Найди себе понятный пример и сделай аналог в своем клиенте (потому что в консоль ты его встроить не можешь). Потом останется только не забыть где строки загруженные через консоль (866) а где строки загруженные клиентом (1251).
Аналогично можешь поискать конвертацию в/из юникода и своей любимой кодировки.
...
Рейтинг: 0 / 0
SQLite3 Русские символы
    #39148074
Ucali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь все стало понятным. Благодарю.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite3 Русские символы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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