Subj. This testcase work proreply with sqlite and postgres, but crash with mysql/mysql_old.
$ mysql --version
mysql Ver 14.12 Distrib 5.0.22, for pc-linux-gnu (i486) using readline 5.1
mysql> select version();
| 5.0.41-Dotdeb_1.dotdeb.1-log |
settings.py:
DATABASE_ENGINE = 'mysql'
DATABASE_OPTIONS = {
'charset': 'utf8',
}
Make simple model, then try to save _unicoded_-string and load it from database.
>>> from catcher.models import *
>>> Feed.objects.all()
Traceback (most recent call last):
File "<console>", line 1, in ?
File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line 107, in __repr__
return repr(self._get_data())
File "/usr/lib/python2.4/site-packages/django/db/models/base.py", line 87, in __repr__
return smart_str(u'<%s: %s>' % (self.__class__.__name__, unicode(self)))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcd in position 10: ordinal not in range(128)
f = Feed.objects.all()[0]
f.title
'Lenta.ru: \xcd\xce\xc2\xce\xd1\xd2\xc8, 02.07.2007'
>>> f.title = u'Lenta.ru: \u041d\u041e\u0412\u041e\u0421\u0422\u0418, 02.07.2007'
>>> f.title
u'Lenta.ru: \u041d\u041e\u0412\u041e\u0421\u0422\u0418, 02.07.2007'
f.save()
f = Feed.objects.all()[0]
>>> f.title
'Lenta.ru: \xd0\x9d\xd0\x9e\xd0\x92\xd0\x9e\xd0\xa1\xd0\xa2\xd0\x98, 02.07.2007' # why