Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Python и SQLite, нужен русский текст  (Прочитано 4268 раз)

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

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Python и SQLite, нужен русский текст
« Ответ #15 : 20 Августа 2013, 13:57:59 »
Сёдня вечером скажу, как я решал эту проблему.
Мне тоже интересно послушать!

Всем спасибо за ответы. Решил проблему тривиально - сразу пишу GUI для работы с выводом содержания таблицы.

То есть в консоли работать не будет? Это не очень для такой программы, все вон хотели в коньки ее прикручивать...
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Python и SQLite, нужен русский текст
« Ответ #16 : 20 Августа 2013, 14:01:46 »
Phlya, если человек выше расскажет как он решил проблему, то будет и в консоли.

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: Python и SQLite, нужен русский текст
« Ответ #17 : 20 Августа 2013, 15:34:26 »
Python 2.7
sqlite3 3.7.15.2


Вообще рекомендуется со строками внутри питона работать в юникоде. Потому решил проблему банально:
Код: (python) [Выделить]
>>> import sqlite3
>>> database = 'base.db'
>>> conn = sqlite3.connect(database)
>>> conn.text_factory = str
>>> cur = conn.cursor()
>>> cur.execute('SELECT {0} FROM {1}'.format('nickname','top'))
>>> result = cur.fetchall()
>>> dd = [ (i[0].decode('utf-8', errors='replace')) for i in result ]
>>> for d in dd:
>>>     print d

В доках вроде тоже есть вариант, только там декодируется прямо в text_factory. И еще здесь про типы.

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Python и SQLite, нужен русский текст
« Ответ #18 : 20 Августа 2013, 15:54:39 »
.decode, точно! Это должно помочь.
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: Python и SQLite, нужен русский текст
« Ответ #19 : 20 Августа 2013, 16:03:20 »
Хотя не, проблема видимо в том, что это кортеж. Т.к. у меня в консоли вообще нет такой проблемы:
>>> for r in result:
...     print r[0]
выдает нормальные славянские буквы  :-\

Пользователь решил продолжить мысль 20 Августа 2013, 16:09:25:
Т.е. юникодные строки внутри кортежей, списков и словарей выдаются в консоль в виде 16-битных кодов юникода.
« Последнее редактирование: 20 Августа 2013, 16:15:47 от Freezeman »

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Python и SQLite, нужен русский текст
« Ответ #20 : 20 Августа 2013, 20:08:38 »
Freezeman, завтра попробую и скажу результат.


Пользователь решил продолжить мысль 21 Августа 2013, 17:00:45:
Опять проблема... https://forum.ubuntu.ru/index.php?topic=227457.0
« Последнее редактирование: 21 Августа 2013, 17:00:45 от Grigory Smirnov »

 

Страница сгенерирована за 0.057 секунд. Запросов: 25.