On Sun, Nov 1, 2009 at 4:56 PM, Hervé Piedvache
<bill.footcow@gmail.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?