База данных ожидает, что вы отправите utf8, но вы отправляете что-то еще. Возможно, с расширением LATIN1.
Вы можете это исправить, выполнив сначала set client_encoding to latin1
для вашего соединения, чтобы база данных знала, какую кодировку вы ему отправляете.
Вы также можете изменить records
так что они действительно содержат символы UTF8, но это кажется сложнее. Или, по крайней мере, я не знаю, как заставить C ++ делать это на макушке.