Python: проблемы с печатанием символов в винде
нные берутся из mysql, где они хранятся в utf-8.может быть это поможет?
при печати в консоль (cmd) выводятся воп
unicode(data_from_DB).encode('cp1251')
И лучше
.encode('cp1251','?')
чтобы эксепшены не вылезали, если символ есть в утф, а в целевой - нету.
Хотя вопросики - это странно. Эксепшены должны вылезать, если он с кодировками мучается. У соединения кодировка какая выставлена?
unicode(data_from_DB)Эта херня сделает decode('ascii'). Автору наверное нужно .decode('utf-8').encode('cp1251')
какие версии всего? через что подключаешься к БД?
set names cp1251 в начале sql запроса не помогает ?
Вопросики получаются из-за того, что, например, клиент задаёт при подключении кодировку latin1, а в БД лежат русские строки, которые в этой кодировке не имеют представления.
Кстати, из-за неприспособленности многих продуктов, использующих мускуль, к поддержке различных кодировок на уровне БП, многое где можно встретить уродство - текст в cp1251 задекларированный как latin1. Как правило, поиск и сортировка в такой базе работают крайне криво.
mysql Ver 14.12 Distrib 5.0.76, for pc-linux-gnu (i686) using readline 6.0
mysql-python-1.2.2
Windows 7 RC
Оставить комментарий
yolki
Данные берутся из mysql, где они хранятся в utf-8.при печати в консоль (cmd) выводятся вопросики. выглядит примерно так:
при перенаправлении в файл - тоже самое.