Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > проблема с кодировкой


Автор: exe1389 17.8.2011, 14:37
При работе программы периодически выдает ошибку вида:
Код

Warning (from warnings module):
  File "D:\бот\monitor_fix2\monitor (1).py", line 135
    c.execute(sql.encode(config.ENCODING,'ignore'))
Warning: Incorrect string value: '\x88\xD1\x82 ) ...' for column 'productName' at row 1

а после :
Код

Traceback (most recent call last):
  File "D:\бот\monitor_fix2\monitor (1).py", line 152, in <module>
    writeToDb(key,art[key][0],server+"/"+tovar,factory,collection,art[key][1])
  File "D:\бот\monitor_fix2\monitor (1).py", line 127, in writeToDb
    result=c.execute(sql)
  File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
OperationalError: (1267, "Illegal mix of collations (utf8_bin,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation '='")
>>> 

что значат эти ошибки? 
ошибки в коде программы или в кодировке бд?

Автор: leshiy_AlisA 17.8.2011, 15:07
CREATE TABLE  покажи пожалуйста

Автор: exe1389 17.8.2011, 15:32
leshiy_AlisA, а точно там была кодировка utf8-general_ci, а поставил bin все почти нормально стало работать, только букву "Ш" не видит:(

Автор: leshiy_AlisA 18.8.2011, 12:09
ты работаешь под виндой, ставь cp1251, может помочь

Автор: Absinthe 21.8.2011, 12:52
Цитата

ты работаешь под виндой, ставь cp1251, может помочь
 Куда ставить?
Файлы писать в ней глупо, для базы использовать глупо, куда еще поставить - не пойму.

Цитата

что значат эти ошибки? 
 А файлы у тебя случайно не в 1251?

Автор: mrDoctorWho 29.10.2011, 11:58
Лучше бы код посмотреть.

Как вариант  - установка кодировки cp1251 по умолчанию.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)