Evgenij LegotskojJune 4, 2017, 4:52 a.m.

Correcting the client encoding of the PostgreSQL database from LATIN1 to UTF8

On the site there was one bug that manifested itself when trying to attach to files messages whose names were in Cyrillic. In this case, the site issued error 503. This occurred despite the fact that the database was encoded in UTF8, after correcting the encoding of the database itself in the previous article . While Django issued the following message:

'latin-1' codec can't encode characters in position 55-64: ordinal not in range(256)

The problem was that the server's coding was initially set to LATIN1. That is, the following commands gave the following conclusion:

postgres=# show server_encoding;
 server_encoding 
-----------------
 LATIN1
(1 row)

postgres=# show client_encoding;
 client_encoding 
-----------------
 LATIN1
(1 row)

postgres=# \encoding 
 LATIN1

Executing the command SET CLIENT_ENCODING TO 'utf 8'; did not work, after exiting psql, the encoding was returned to LATIN1 .

Correction

Correction of this bug reduced to setting the encoding of the server itself. Since the server is primarily Russian-speaking, the installation of Russian-language packages of locales was made to correct it.

sudo apt-get install language-pack-ru

Implementation of the Russification process

sudo update-locale LANG=ru_RU.UTF-8

And reboot the server

sudo reboot

After that, the server client encoding became UTF8

postgres=# show server_encoding;
 server_encoding 
-----------------
 LATIN1
(1 row)

postgres=# show client_encoding;
 client_encoding 
-----------------
 UTF8
(1 row)

postgres=# \encoding 
 UTF8

This was enough to fix the bug.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
Support the author Donate

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting
T

C++ - Тест 003. Условия и циклы

  • Result:57points,
  • Rating points-2
TG

C++ - Test 001. The first program and data types

  • Result:53points,
  • Rating points-4
TG

C++ - Test 001. The first program and data types

  • Result:60points,
  • Rating points-1
Last comments
t
  • t1m4
  • Jan. 23, 2021, 8:28 a.m.

Django - Tutorial 052. Redefining a User Model

Добрый день, Я вот написал в admin.py admin.site.register(User, UserAdmin) Но у меня не появилось новые поля в админке?

Django - Tutorial 001. Deploying a site on Django + PostgreSQL + Gunicorn + Nginx

Ошибка в конфиге инжинкса про статику в root последний слеш лишний путь в таком виде получается /home/user/myprojectenv/myproject/myproject//static
  • Jurij
  • Jan. 20, 2021, 1:34 p.m.

Qt/C++ - Lesson 061. Adding images to the application using the Drag And Drop method from the file manager

// Вместо отрисовки иконки и текста будем отрисовывать только одно изображение // с небольшими отступами в 5 пикселей QPixmap pix(m_model->data(index).toString()); …
m
  • magrif
  • Jan. 19, 2021, 12:37 p.m.

Qt Сертификация

Здравствуйте. Подскажите, оплачивать ваучер прямо в выбранном тестовом центре? Можно ли загранник предъявить? Или свой паспорт, а заполнить транслитом? А то там пишут: Your name must exactl…
r
  • retmas
  • Jan. 17, 2021, 4:09 a.m.

Qt/C++ - Tutorial 074. Generating pseudo-random numbers, using STD library random

Дмитрий, решает. Просто автор, видимо, не сильно озаботился изучением документации QRandomGenerator. Да и в листинге с использованием qrand вызов функции qsrand на каждой итерации цикла нав…
Now discuss on the forum
K

Как поменять шаг оси с числового формата на текстовый

Добрый день. Только начинаю знакомство с Qt, а именно с библиотекой QCustomPlot. Столкнулся с такой проблемой - не знаю как поменять оси с числового на текстовый формат как на скрине. …

QScrollArea dynamically add QCheckBoxes

Всё правильно. Это просто спамер, который отправился в вечный бан.
S

Добавление данных в модель из textEdit

Котов писать жалко, да что поделать - приходится) Вот мне пока не шибко понятно как именно при внесении новых данных обновлять модель, как мне заставить TableView отображать обновленные дан…
IP
T

AbstractListModel использование в нескольких элементах

Разобрался. Извиняюсь за беспокойство. Я просто не поставил "model." перед переменными. Делаю рефакторинг под abstractModel, раньше модель была в QML и как то прокатывала без этого. На железе уж…
About
Services
© EVILEG 2015-2020
Recommend hosting TIMEWEB