On Sun, Nov 1, 2009 at 4:56 PM, Hervé Piedvache <bill(dot)footcow(at)gmail(dot)com>wrote:
base=# select translate('Hervé', 'é', 'e');
> translate
> -----------
> Herve
> (1 row)
>
> base=# select translate('Hervé', 'âàäéèêëïöôùüû', 'aaaeeeeioouuu');
> translate
> -----------
> Hervai
> (1 row)
>
You are actually doing something like:
select translate(E'Herv\xc3\xa9',
E'\xc3\xa2\xc3\xa0\xc3\xa4\xc3\xa9\xc3\xa8\xc3\xaa\xc3\xab\xc3\xaf\xc3\xb6\xc3\xb4\xc3\xb9\xc3\xbc\xc3\xbb',
E'aaaeeeeioouuu');
Which apparently translates \xc3 -> a and \xa9 -> i.
I don't know why it does that though. Maybe it's the server_encoding. What
does SHOW server_encoding; tell you?