Django хранит данные не в юникоде - PullRequest
1 голос
/ 13 февраля 2012

Я пытаюсь сохранить полезные данные IP-пакетов в базе данных PostgreSQL с помощью Django.

В настоящее время я представляю полезную нагрузку как CharField.

Я получаю эту ошибку:

django.db.utils.DatabaseError: invalid byte sequence for encoding "UTF8": 0xedbc93
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".

Есть ли способ разумно сохранить эти данные?Я могу сделать str(packet.payload) без ошибок, но когда Django пытается сохранить объект, он выдает ошибку кодирования.Bytestring кажется очевидным решением, но не похоже, что Django это поддерживает.

1 Ответ

3 голосов
/ 13 февраля 2012

Если вы хотите хранить произвольные строки байтов, вы должны объявить их как таковые. Многие (большинство?) Последовательности байтов не являются допустимыми UTF-8, так что это не очень хороший способ их хранения. CharField предназначен для хранения текста, а у вас нет текста.

Ответы на этот вопрос, вероятно, будут полезны: Поле модели Django Blob

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...