Надежный способ поместить содержимое любого произвольного текстового файла в базу данных (используя Django / Python)? - PullRequest
1 голос
/ 19 мая 2011

Как часть моего приложения Django, я должен получить содержимое текстового файла, который пользователь загружает (это может быть любая кодировка), и сохранить его в моей БД. Я продолжаю сталкиваться с проблемами (например, необходимость вручную удалить спецификацию UTF8 , или необходимость выяснить, как учитывать непечатные символы, или необходимость выяснить, как заставить работать все символы Юникода - не только латиницу и т. д.) и каждый из этих вопросов требует своего взлома.

Есть ли надежный способ сделать это, который не требует каждого из этих индивидуальных исправлений? Сейчас я просто использую file.read () для получения содержимого, затем делаю все эти обходные пути для очистки содержимого, а затем использую .save () для его сохранения в БД (у меня есть модель для этого).

Что еще я могу делать?

Ответы [ 2 ]

1 голос
/ 19 мая 2011

Вызывает некоторые накладные расходы, но вы можете base64 кодировать всю строку перед сохранением в БД.Тогда никакого побега не требуется.

0 голосов
/ 19 мая 2011

Если вы хотите явно избежать любых проблем с кодировкой и просто видеть файлы как сгустки двоичных данных (а не строки текста в определенной кодировке), вы можете использовать двоичный формат вашей базы данных.

Для MySQL это BINARY и VARBINARY: http://dev.mysql.com/doc/refman/5.0/en/binary-varbinary.html

Для более глубокого понимания проблем с Юникодом и utf-8 (рекомендуется), это хорошая статья на эту тему: http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF

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