Я работаю над проектом, мой родной язык — испанский, и в моей базе данных я использую такие символы, как ñ и é. Когда я использую оболочку psql, эти символы правильно отображаются на терминале, но когда я делаю запрос с помощью node-postgress, эти символы не отображаются, вместо этого я получаю ¤ или ¢.
В моей базе данных у меня есть и client_encoding, и server_encoding для UTF8, и я даже проверил с помощью node-postgress, используя запрос, чтобы увидеть, были ли они также установлены в UTF8, и они не изменились по какой-то другой причине.
Мое подключение к базе данных настроено так
const { Pool } = require("pg");
const db = new Pool({
user: user,
password: password,
host: localhost,
port: 5432,
database: my_database,
});
module.exports = db;
И код моего запроса выглядит так:
const router = require("express").Router(),
db = require("../database/db");
//GET A PLACE ROUTE
router.get("/", async (req, res) => {
try {
const place = await db.query("SELECT * FROM places");
console.log(place.rows[0].name);
res.status(200).json({
status: "success",
data: {
place_name: place.rows[0].name,
},
});
} catch (error) {
console.error(error.message);
res.status(500).send("Error del servidor");
}
});
И теперь, если название места, например, Salón de peñas, оно будет отображаться как в console.log, так и в моем ответе json, как Sal¢n de peñas.
Сначала я подумал, что проблема в том, что я неправильно настроил свою кодировку ответа json, но потом я отправил эти символы в качестве ответа, и они отображаются правильно. Проблема в том, что эти символы поступают из моей базы данных. Я проверил кодировку базы данных (как клиента, так и сервера), и они установлены на UTF8, и, как я уже говорил, эти символы отображаются правильно, когда я использую оболочку psql.
У меня в основном та же проблема, что и этот вопрос, на который не получен ответ