Miałem podobny problem i rozwiązałem go, ustawiając kodowanie na UTF8 za pomocą \encoding UTF8
w kliencie przed próbą INSERT INTO foo (SELECT * from bar WHERE x=y);
. Mój klient używał kodowania WIN1252, ale baza danych była w UTF8, stąd błąd.
Więcej informacji można znaleźć na wiki PostgreSQL w sekcji Obsługa zestawu znaków (dokumentacja programistyczna).