Evgenii Legotckoi
Маусым 4, 2017, 2:52 Т.Қ.

PostgreSQL дерекқор клиентінің LATIN1-ден UTF8-ге кодтауын түзетіңіз

Мазмұны

Сайтта бір қате болды, ол хабарларға аты кириллицада жазылған файлдарды тіркеу кезінде пайда болды. Бұл жағдайда сайт 503 қатесін берді.Бұл дерекқор кодтауы UTF8 форматында болғанына қарамастан, алдыңғы мақалада дерекқордың кодтауын түзеткеннен кейін орын алды. /). Джанго келесі хабарламаны берді:

'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

Бұл қатені түзету үшін жеткілікті болды.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз