I created a database with default encoding (SQL_ASCII) and default collate (C).
I created a table test like this:
create table test (a varchar (10));
Then i executed "insert into teste (a) values ('áéç&ã','Æ','ß');
After that:
select * from test;
a
---------
áéç&ã
Æ
ß
Why did it stora correctly if those values are not ASCII?
Characters are interpreted and displayed by your terminal, not the Postgres system. I suspect that you have language settings on whatever windowing system you use. Postgres merely interprets the characters you send as a series of 8-bit bytes. It's up to your display system to interpret them. If you change your display terminal's language, I expect you'll see something different.
The language settings of Postgres don't change what is stored, only how it is interpreted (such as sorting).
Craig
I see.
When you say "Postgres merely interprets the characters you send as a series of 8-bit bytes", you meant for SQL_ASCII or every encoding?
Isn't sorting defined by collation?
Could I dump my database, create a new one with LATIN1 and restores?