Как только у вас есть строка байтов s
, вместо того, чтобы использовать ее как объект unicode напрямую, конвертируйте ее явно с правильным кодеком, например ::10000 *
u = s.decode('latin-1')
и используйте u
вместо s
в коде, который следует за этим пунктом (предположительно, часть, которая пишет в sqlite). Предполагается, что latin-1
- это кодировка, которая использовалась для первоначального создания строки байтов - мы не можем догадаться, поэтому попытайтесь выяснить; -).
Как правило, я предлагаю: не обрабатывайте в своих приложениях какой-либо текст как закодированные строки байтов - декодируйте их в объекты Unicode сразу после ввода и, при необходимости, кодируйте их обратно в строки байтов непосредственно перед выводом.