- 1. Исправление
На сайте был один баг, который проявлялся при попытке прикрепления к сообщениям файлов, названия которых были на кириллице. В данном случае сайт выдавал ошибку 503. Это происходило несмотря на то, что кодировка базы данных была в UTF8, после исправления кодировки самой базы данных в предыдущей статье . Тогда как Django выдавал следующее сообщение:
'latin-1' codec can't encode characters in position 55-64: ordinal not in range(256)
Проблема заключалась в том, что кодировка сервера была первоначально выставлена в LATIN1. То есть следующие команды давали следующий вывод:
postgres=# show server_encoding; server_encoding ----------------- LATIN1 (1 row) postgres=# show client_encoding; client_encoding ----------------- LATIN1 (1 row) postgres=# \encoding LATIN1
Выполнение команды SET CLIENT_ENCODING TO 'utf8'; не давало результата, после выхода из psql кодировка возвращалась в LATIN1 .
Исправление
Исправление данного бага свелось к настройке кодировки самого сервера. Поскольку в первую очередь сервер русскоязычный, то для исправления была произведена установка русскоязычных пакетов локалей.
sudo apt-get install language-pack-ru
Выполнение процесса русификации
sudo update-locale LANG=ru_RU.UTF-8
И перезагрузка сервера
sudo reboot
После этого кодировка клиента сервера стала UTF8
postgres=# show server_encoding; server_encoding ----------------- LATIN1 (1 row) postgres=# show client_encoding; client_encoding ----------------- UTF8 (1 row) postgres=# \encoding UTF8
Этого оказалось достаточно для исправления бага.