Указание MySQL соединению использовать UTF-8 с Django - PullRequest
1 голос
/ 23 августа 2011

Я загрузил некоторые данные в базу данных MySQL (5.5.15 для osx10.6), используя кодировку UTF8, хотя по какой-то причине мне пришлось указать ее кодировку как latin1 при загрузке.

Я считаю, что эта часть хороша, потому что, когда я пишу в OUTFILE, мои символы 'nu' в Юникоде выходят нормально в терминале и в Vim.

Однако, когда я смотрю на них в сеансе MySQL и пытаюсь редактировать поля из администратора Django, я получаю искаженные символы (latin1?).

Итак, мой вопрос: как мне сказать клиенту MySQL и (особенно) Django читать мою базу данных как UTF-8, так?

В командной строке я попытался

--default_character_set=utf8 

, а также

'SET NAMES UTF8;'

в командной строке MySQL, но они не работают.

Когда я смотрю на VARIABLES LIKE 'char%', все они настроены на utf8, кроме символьного_сервера, который является латиницей1.Если я установлю его на utf8 .... это тоже не сработает.

Буду признателен, если кто-нибудь даст мне несколько советов, особенно о том, как настроить Django для правильной работы с моей базой данных.

Спасибо!

1 Ответ

2 голосов
/ 23 августа 2011

Добавьте в свой .cnf:

[mysqld]
character-set-server = utf8
collation-server     = utf8_general_ci
skip-character-set-client-handshake
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...