Eu acho que isso é um bug Pg.
Na minha opinião, o PostgreSQL deveria normalizar o utf-8 em uma forma pré-composta antes de realizar conversões de codificação. O resultado das conversões mostradas está errado.
Vou criá-lo no pgsql-bugs ... feito.
http://www.postgresql.org/message-id/example @sqldat.com
Você deve ser capaz de seguir o tópico lá.
Editar :pgsql-hackers não parece concordar, então é improvável que isso mude rapidamente. Eu recomendo fortemente que você normalize seu UTF-8 nos limites de entrada do seu aplicativo.
BTW, isso pode ser simplificado para:
regress=> SELECT 'á' = 'á';
?column?
----------
f
(1 row)
o que é pura conversa fiada, mas é permitido. O primeiro é pré-composto, o segundo não. (Para ver este resultado, você terá que copiar e colar, e só funcionará se seu navegador ou terminal não normalizar utf-8).
Se você estiver usando o Firefox, talvez não veja as informações acima corretamente; O Chrome o processa corretamente. Aqui está o que você deve ver se o seu navegador lida com Unicode decomposto corretamente: