Форум сайта python.su
В Django проекте использую кодировку cp1251, но есть проблемы.Взято с http://forum.vingrad.ru/topic-127130.html
в settings.py имею:
DEFAULT_CHARSET = ‘cp1251’
Кодировка базы данных тоже cp1251_general_ci
Но в админке при добалении чего-либо на русском в базу данных получаю: ‘??????’
И в шаблонах, тот текст который статический отображется нормально, а тот что формируется динамически из базы тоже ‘??????’.
В чем может быть проблема, кто-нибудь знает?
Офлайн
Попробуй перед занесением в таблицу прописать что-то наподобие этого:
from django.db import connection
cursor = connection.cursor()
cursor.execute(“SET NAMES CP1251”)
Офлайн
Пару дней назад начал изучать Питон и Джанго.
Пробую выполнить обучалку отсюда http://www.djangoproject.com/documentation/tutorial01/ (polls)
Создал модели и базу, сделал такой тестовый скрипт создающий объект:
# -*- coding: utf-8 -*- from mysite.polls.models import Poll import datetime p = Poll(question="Как дела?", pub_date=datetime.datetime.now()) p.save()
Traceback (most recent call last):
File "test.py", line 7, in <module>
p.save()
File "/usr/lib/python2.5/django/db/models/base.py", line 238, in save
','.join(placeholders)), db_values)
File "/usr/lib/python2.5/django/db/backends/util.py", line 12, in execute
return self.cursor.execute(sql, params)
File "/usr/lib/python2.5/site-packages/MySQL_python-1.2.2-py2.5-linux-i686.egg/MySQLdb/cursors.py", line 168, in execute
File "/usr/lib/python2.5/site-packages/MySQL_python-1.2.2-py2.5-linux-i686.egg/MySQLdb/cursors.py", line 82, in _warning_check
File "/usr/lib/python2.5/warnings.py", line 62, in warn
globals)
File "/usr/lib/python2.5/warnings.py", line 102, in warn_explicit
raise message
_mysql_exceptions.Warning: Incorrect string value: '\xCA\xE0\xEA \xE4\xE5...' for column 'question' at row 1
Отредактировано (Апрель 11, 2008 13:35:48)
Офлайн
Kirax1. Преобразование будет выполнятся примерно так: utf-8 => Unicode и Unicode => cp1251.
То есть получается что если у меня сайт в cp1251, то на каждом запросе будет выполнятся преобразование кодировок cp1251 => utf-8 и utf-8 => cp1251? И это нормально? Как-то мне это не нравится такой подход с точки зрения быстродействия и вообще…
Офлайн