![]() |
SQLite>Insert -проблема кодировки
Ломаю голову уже несколько часов:
выполняю SQLite-запрос INSERT, добавляю текстовое поле: 1. Если текст латиницей (English), insert работает. 2. Если текст кириллицей - insert не срабатывает. useCodePage - никак не влияет на ситуацию. Кто-нибудь с таким сталкивался? P.S. В стандартном примере Zinc та же проблема. |
Текст можно записать в ByteArray:
writeUTFBytes writeMultiByte Если вставлять ByteArray проблем быть не должно. |
Я пытался работать с ByteArray, но это не сработало, либо у меня руки кривые :(
|
Код:
var conn:SQLConnection = new SQLConnection(); |
Э... может я не упомянул... я работаю с SQLite и Zinc.
|
В общем с подобной проблемой я тоже сталкнулся, кроме того в SELECT по русским символам типа SELECT с1 FROM t1 WHERE c1 = 'Пётр' тоже не работает , и решение обоих проблем как мне кажется возможно корявым методом транслитерации русских символов из приложения с внесением в БД уже латиницы.
В недавнем случае с которым пришлось заниматься самому, также столкнулся с проблемой отображения кирилических символов хранящихся в БД в UTF-8 или ANSI при использовании стандартных виндовых русских шрифтов типа Arial. Суть проблемы в интерпритации Цинком байтовых последовательностей полученных из БД методом Код AS3:
Код AS3:
|
ребята есть на много проще способ.
у меня все заработало моментально 1. Скачиваем и устанавливаем SQLLite Expert Personal 2. Создаем в нем новую БД в кодировке utf-8 3. Конектимся к базе и выполяем любые DML команды У вас не будет больше проблем с кодировкой. если будут вопросы пишите помогу |
Сейчас посмотрел - база в UTF-8. А ты говоришь про AIR или Zinc?
|
Цинк использует внешнюю клиентскую ДЛЛ-ку sqlite.dll или код для работы со Скулайтом вкомпилен в сам движок, как в AIR?
Если отдельную длл-ку, то можно ее заменить скомпиленной с поддержкой ICU. У меня тоже куча траблов была с украинскими символами в базе - LIKE не работал, сортировка неправильная была. Скомпилил с ICU - все заработало, правда добавилось еще 3 длл-ки, одна из которых весит 15 метров. Забыл добавить, что я тогда с Python-ом работал, но подход, по сути, универсальный. |
Zinc использует свою библиотеку mdm_Database.dll, в которую встроен SQLite.
При компиляции все встраивается в один exe-файл. Но, на крайний случай цинк умеет работать с внешними dll-файлами. |
| Часовой пояс GMT +4, время: 19:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.