У меня нет проблем со вставкой UTF-8 (корейский символ в моем случае) с помощью прямой команды sql в консоли PGAdmin или psql. Но когда мне нужно вставить значения в C++ с помощью библиотеки libpq, я получил ошибку кодирования, и я не мог ее решить до сих пор.
Я протестировал соединение с БД и т. д. и работает хорошо. Поэтому я просто поделюсь только кодом вставки:
/* INSERT demo */
res = PQexec(conn,
"insert into db_test values('testval', '군포지사','N00225','영동선','0500','E',13.67,14.18);");
if (PQresultStatus(res) != PGRES_COMMAND_OK) {
std::cout << "Insert into table failed: " << PQresultErrorMessage(res)
<< std::endl;
}
else
std::cout << "inserted" << std::endl;
PQclear(res);
Ниже ошибка:
Insert into table failed: ERROR: invalid byte sequence for encoding "UTF8": 0xb1
char
литералы обычно кодируются в кодировке вашего исходного файла. Используйте литерал u8, чтобы гарантировать кодировку - person Alan Birtles   schedule 22.05.2020