Данные, хранящиеся в юникоде (в базе данных), должны быть извлечены и преобразованы в другую форму.
Следующий фрагмент
def convert(content):
content = content.replace("ஜௌ", "n\[s");
return content;
mydatabase = "database.db"
connection = sqlite3.connect(mydatabase)
cursor = connection.cursor()
query = ''' select unicode_data from table1'''
cursor.execute(query)
for row in cursor.fetchone():
print convert(row)
выдает следующее сообщение об ошибке в методе конвертирования.
exceptions.UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xe0 в
позиция 0: порядковый номер вне диапазона (128)
Если содержимое базы данных равно "ஜௌஜௌஜௌ" , вывод должен быть "n \ [sn \ [sn \ [s"
В документации предлагается использовать игнорирование или замену, чтобы избежать ошибки при создании строки Unicode.
когда итерация изменяется следующим образом:
for row in cursor.fetchone():
print convert(unicode(row, errors='replace'))
возвращает
exceptions.TypeError: декодирование Unicode не поддерживается
, который сообщает, что строка уже является Unicode.
Любой свет, чтобы заставить его работать, высоко ценится. Заранее спасибо.