Re: BUG #6246: character encoding for 64 bit

From: Craig Ringer <ringerc(at)ringerc(dot)id(dot)au>
To: bushcraftrelf <cyclingrelf(at)gmail(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6246: character encoding for 64 bit
Date: 2011-10-13 02:51:34
Message-ID: 4E965236.6050307@ringerc.id.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 10/13/2011 03:09 AM, bushcraftrelf wrote:
>
> Kevin Grittner wrote:
>>
>>
>> WIN1512 supports characters which are not supported by LATIN1. If
>> you sent such characters to the database, what would you expect to
>> happen?
>>
>> -Kevin
>>
>
> Hi Kevin,
>
> I forgot to mention a few things. One is that the problem only arises in
> postgres 9.1 - I can create exactly the same databases and tables in 9.0 and
> have no problems accessing them using psql 9.0.
> Also, I set the client_encoding to "LATIN1" and so there should have been no
> problem with a mismatch in encoding.

Actually, there still is, because your terminal isn't speaking latin1 so
either it'll have errors when converting from the WINxxxx terminal
encoding to latin1 or characters will be corrupted where they're not the
same in both encodings. Even if it seemed to work, unless you set your
*terminal* to latin1 as well it'd produce wrong results.

psql may want to `chcp 65001' to put the shell in unicode mode. You may
also need to select a Unicode font for the shell. I seem to recall that
"cmd /u" is also useful in some way, but I'm not in front of Windows at
the moment so I can't check.

> The main difference I have found (if it's any use) is that when I first open
> psql 9.0, the \encoding is always set at UTF8 until I change it (which
> postgres can convert to LATIN1). When I first open psql 9.1, the \encoding
> is set at WIN1252 before I change it. WIN1252 cannot be converted to LATIN1.

It sounds like psql on 9.1 is correctly detecting the shell's encoding,
wheras 9.0 is assuming utf-8. Whoopsie!

If that's the case, try running "chcp 65001" before "psql". See if that
helps.

--
Craig Ringer

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Craig Ringer 2011-10-13 02:55:07 Re: BUG #6252: After drop the default database 'postgres', I can not create a database by 'createdb.exe'
Previous Message Dimitri Fontaine 2011-10-12 21:07:40 Re: [BUGS] *.sql contrib files contain unresolvable MODULE_PATHNAME