我没有问题地在PGAdmin或psql控制台中使用直接SQL命令插入UTF-8编码(在我的情况下是韩文字符)。但是,当我需要使用libpq库通过C++插入值时,我遇到了编码错误,直到现在我都无法解决它。
我已经测试了数据库连接等,并且运作良好。因此,我将仅分享插入代码:
/* 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字面量可以保证正确的编码。 - Alan Birtles