Как я могу использовать Django с устаревшей базой данных Postgresql, данные которой закодированы в LATIN1? - PullRequest
2 голосов
/ 20 января 2011

Django, похоже, хочет, чтобы его база данных была закодирована в UTF-8, но наша устаревшая база данных закодирована в LATIN1, что требуется для старых систем. Можно / возможно подключить Django для доступа к базе данных для перевода между UTF-8 и LATIN1 при чтении / записи из / в базу данных? Есть ли лучшее решение (которое не требует преобразования БД)?

Ответы [ 2 ]

4 голосов
/ 20 января 2011

PostgreSQL переведет его для вас, если вы установите client_encoding в UTF8, если ваша база данных находится в LATIN1 (а не в SQLASCII). Вы можете либо заставить django отправить команду SET client_encoding = 'UTF8', либо изменить значение по умолчанию в postgresql.conf.

0 голосов
/ 20 января 2011

Я предлагаю выгрузить файл sql и использовать iconv для преобразования всего в UTF-8.

Вы можете использовать нечто похожее на то, что я использовал для кириллицы (русский) Latin1 в UTF-8:

iconv -f utf-8 -t latin1 < in.sql | iconv -f cp1251 -t utf-8 > out.sql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...