Запросы от узла к базе данных Postgres не в UTF8 - PullRequest
0 голосов
/ 29 января 2019

Для проекта мне нужно кодировать сервер в JS (Node), который возвращает элементы из базы данных (Postgres) на компьютере с Windows.

Все «работает нормально», так что соединениявсе в порядке и элементы возвращаются, однако у меня есть проблема с кодировкой.Мои элементы написаны на французском языке, поэтому некоторые буквы, такие как «éàç», неправильно «видны» сервером (я напечатал результат).Консоль работает с UTF8 (я проверял это), поэтому проблема в другом месте.

Мне кажется, что эта проблема связана с запросом к базе данных (HTML и JS со стороны клиента в порядке и поддерживают эти буквы).Вот часть моего кода, которая возвращает неправильные вещи.

var client = new pg.Client({
user: 'xx',
password: 'yy', 
database: 'phrases',
host: 'localhost', 
client_encoding: 'utf8',
port: '5432'
});
client.connect();

client.query('SELECT id,mots from phrase WHERE langue=$1 ORDER BY anno limit 20;', ['fr'])
.then(
  function(data){
    text = data.rows[0].mots; //<= return the text needed
    console.log(text);
  }
);

Я почти уверен, что проблема не в этой части кода, а в стороне базы данных, однако я могу ошибаться (и поэтому яне могу понять почему).Из консоли PSQL у меня есть:

show CLIENT_ENCODING; > UTF8
show SERVER_ENCODING; > UTF8

И из базы данных:

    Nom    | PropriÚtaire | Encodage |      Collationnement       |    Type caract.    |     Droits d'acc
-----------+-------------+----------+----------------------------+--------------------+-----------------------
phrases   | postgres    | UTF8     | French_France.1252         | French_France.1252 |

Я пытался из программы на Python (вывести простой запрос в БД), чтобы увидеть, еслирезультаты были одинаковыми, они есть;Письма плохо напечатаны.Следовательно, я уверен, что проблема исходит из БД и связана с кодировкой, но нет способа найти что-то работающее.

У кого-нибудь есть идея?

Best,

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