Автор Тема: [Данные, строки] SQLite версии AutoIt до 3.0.0.0  (Прочитано 8476 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Redline [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 506
  • Репутация: 368
  • Пол: Мужской
    • Награды
Написал сюда, хотя не баг а скорее проблема.

Есть старый проект написанный еще на Autoit 3.0, он пишет данные в базу SQLite через соответствующий UDF.
Решил обновить проект под новый AutoIt, и вот проблема - старый UDF пишет и читает данные из базы в формате ANSI, а новый исключительно в UTF-8. То есть русский текст выдается пустыми квадратами  :(
Проблема именно в хранение данных, а не в выдаче - открывал файл SQLite Expetro-м, он видит в разных строках разные кодировки.

Варианты решения:
1. Использовать старый UDF(прилагается), но новый работает во много раз быстрее(при выборке 200 строк ANSI тратит 15сек, а UTF 0.3сек !!!)
2. Написал скрипт он берет таблицу и каждую ячейку (если она не соответствует UTF-8), конвертирует в UTF-8, а потом целиком заносит обратно в базу. Опять же с большой базой работает медленно.
(нажмите для показа/скрытия)
Уроки по регулярным выражениям на AutoIt: RegExp

Русское сообщество AutoIt

[Данные, строки] SQLite версии AutoIt до 3.0.0.0
« Отправлен: Январь 14, 2011, 08:02:12 »

Оффлайн `p r o x y [?]

  • Глобальный модератор
  • *
  • Сообщений: 596
  • Репутация: 156
  • Пол: Мужской
  • «Улыбайтесь, господа!»
    • WebInWeb
    • Награды
Re: [Данные, строки] SQLite версии AutoIt до 3.0.0.0
« Ответ #1, Отправлен: Январь 15, 2011, 01:08:43 »
Почему же в этот раздел? Это же не баг.
Можно попробовать перекодировать прочитанные денные с помощью Encoding UDF.
1 тема – 1 вопрос.
Как правильно назвать свою тему – подскажут тут.
На форуме принято помечать тему «решенной» после получения ответа на свой вопрос.

Оффлайн Redline [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 506

  • Автор темы
  • Репутация: 368
  • Пол: Мужской
    • Награды
Re: [Данные, строки] SQLite версии AutoIt до 3.0.0.0
« Ответ #2, Отправлен: Январь 15, 2011, 07:56:10 »
`p r o x y
А куда нужно было? Может быть в полезняшки? Думаю это все же баг несовместимости версий, но спорить не буду :)
`p r o x y  [?]
Цитировать
Можно попробовать перекодировать прочитанные денные с помощью Encoding UDF.

В том то и дело что выдаваемые данные не поддаются перекодировке. В новой версии SQLite(UTF) на выходе вместо русских букв знаки вопроса:
  id  name           
 1   ????? - giraffe
 1   жираф - giraffe
Первая строка вставлена старым ANSI, вторая UTF.
Ну и для примера - выдача этих же данных старым ANSI:
id  name                 
 1   жираф - giraffe     
 1   Р¶РёСЂР°С„ - giraffe
Тут преобразовать можно без проблем - это и делается в варианте №2 с помощью двух функций Encoding UTF ;)

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Данные, строки] SQLite версии AutoIt до 3.0.0.0
« Ответ #3, Отправлен: Январь 15, 2011, 12:03:11 »
Redline  [?]
Цитировать
А куда нужно было?
в общение
Конференция посвященная AutoIt на jabber.ru - [email protected]
Как попасть на конференцию читаем тут


Русское сообщество AutoIt

Re: [Данные, строки] SQLite версии AutoIt до 3.0.0.0
« Ответ #3 Отправлен: Январь 15, 2011, 12:03:11 »

Оффлайн camboja [?]

  • Новичок
  • *
  • Сообщений: 1
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Данные, строки] SQLite версии AutoIt до 3.0.0.0
« Ответ #4, Отправлен: Февраль 26, 2016, 17:59:54 »
Здравствуйте!

Помогите, пожалуйста, разобраться!

В базе SQLite данные написаны на русском языке в кодировке ANSI. Это выяснилось после открытия базы в SQLite Expert Personal: в настройках пришлось выставить "Default ANSI code page", иначе вся информация на русском отображалась как  ������.

Далее при попытке считать данные в AutoIt и вывести их отображаются вопросительные знаки.
Пробовал юзать функции из Encoding.au3, но результата нет.

Возможно, нужно открыть базу как ANSI, ведь по умолчанию она открывается в UTF8?

Как правильно получить русский текст из базы?
Буду признателен за помощь.

Заранее спасибо!

Русское сообщество AutoIt

Re: [Данные, строки] SQLite версии AutoIt до 3.0.0.0
« Ответ #4 Отправлен: Февраль 26, 2016, 17:59:54 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
17 Ответов
9416 Просмотров
Последний ответ Январь 12, 2011, 06:05:45
от Kalisnik
1 Ответов
2241 Просмотров
Последний ответ Декабрь 17, 2011, 15:05:41
от axlwor
2 Ответов
4183 Просмотров
Последний ответ Апрель 15, 2012, 13:37:51
от Redline
2 Ответов
3622 Просмотров
Последний ответ Апрель 09, 2013, 15:19:20
от IgRo
4 Ответов
4187 Просмотров
Последний ответ Август 18, 2013, 09:19:10
от Redline
0 Ответов
778 Просмотров
Последний ответ Октябрь 09, 2014, 11:43:49
от snoitaleR
2 Ответов
3336 Просмотров
Последний ответ Октябрь 29, 2014, 00:36:27
от Rjevsky
1 Ответов
764 Просмотров
Последний ответ Ноябрь 17, 2014, 09:47:53
от madmasles
0 Ответов
3853 Просмотров
Последний ответ Февраль 27, 2016, 02:05:54
от Garrett
2 Ответов
540 Просмотров
Последний ответ Январь 10, 2017, 13:35:14
от Skygrinder