- 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
Цього виявилося достатньо виправлення бага.