Для проекта мне нужно кодировать сервер в 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,