Thread: Wrong german error message encoding

Wrong german error message encoding

From
Date:

Hello.

I think there is a wrong encoding for (at least) German localized error messages.

 

Setup:
- Standard installation of PostgreSQL 16.4 on a German Windows 10.

- Create a new database with at least one German “Umlaut” in it with pgAdmin, e.g. “träshableß

 

To reproduce the error:
- Connect to the new database “träshableß” via socket (or libPq)

- Connection is successful

- Disconnect and connect again with a wrong dbname instead, e.g. “träshable

- You get the following byte array back as error message:

#[68 97 116 101 110 98 97 110 107 32 187 116 114 195 164 115 104 97 98 108 101 171 32 101 120 105 115 116 105 101 114 116 32 110 105 99 104 116]

- UTF8 decoded this results in:
                Datenbank träshable existiert nicht

- Note the garbled double quotes

- MS-CP-1252 decoded this results in:

                Datenbank »träshable« existiert nicht

- Note the garbled „ä“ here

 

I assume that at least this error message template is encoded with MS-CP-1252 instead of UTF8, but it all German localized error messages for connection errors may be affected.

I can reproduce the same encoding problems when using a user with a German “Umlaut” in it, e.g. “ünknöwn”.

 

Best regards,

 

Markus Rips

 

Re: Wrong german error message encoding

From
Daniel Gustafsson
Date:
> On 20 Nov 2024, at 08:49, <radagast42@gmx.net> <radagast42@gmx.net> wrote:
>
> Hello.
> I think there is a wrong encoding for (at least) German localized error messages.
>  Setup:
> - Standard installation of PostgreSQL 16.4 on a German Windows 10.
> - Create a new database with at least one German “Umlaut” in it with pgAdmin, e.g. “träshableß”

Do you get the same error message issue when connecting with psql instead og PGAdmin?

--
Daniel Gustafsson




AW: Wrong german error message encoding

From
Date:
When using psql from the command line I can't even connect to the database "träshableß":

    psql -d träshableß -U postgres
    Passwort für Benutzer postgres:
    psql: Fehler: Verbindung zum Server auf »localhost« (::1), Port 5432 fehlgeschlagen: FATAL:  Datenbank »träshableß«
existiertnicht 

But in this case I see no garbled error message....
I have to encode the database name  with MS-CP-1252 to connect:

    psql -d träshableß -U postgres
    Passwort für Benutzer postgres:
    psql (16.4)
    Warnung: Konsolencodeseite (850) unterscheidet sich von der Windows-
             Codeseite (1252). 8-Bit-Zeichen funktionieren möglicherweise nicht
             richtig. Einzelheiten finden Sie auf der psql-Handbuchseite unter
             »Notes for Windows users«.
    Geben Sie »help« für Hilfe ein.

    träshableÃY=#

In the scenario given in my bug report I connected to PostgreSQL via socket interface or libpq.
PgAdmin correctly shows the database name as "träshableß".

Markus Rips

-----Ursprüngliche Nachricht-----
Von: Daniel Gustafsson <daniel@yesql.se>
Gesendet: Mittwoch, 20. November 2024 10:00
An: radagast42@gmx.net
Cc: pgsql-bugs@lists.postgresql.org
Betreff: Re: Wrong german error message encoding

> On 20 Nov 2024, at 08:49, <radagast42@gmx.net> <radagast42@gmx.net> wrote:
>
> Hello.
> I think there is a wrong encoding for (at least) German localized error messages.
>  Setup:
> - Standard installation of PostgreSQL 16.4 on a German Windows 10.
> - Create a new database with at least one German “Umlaut” in it with pgAdmin, e.g. “träshableß”

Do you get the same error message issue when connecting with psql instead og PGAdmin?

--
Daniel Gustafsson





Re: AW: Wrong german error message encoding

From
Erik Wienhold
Date:
On 2024-11-21 13:28 +0100, radagast42@gmx.net wrote:
> When using psql from the command line I can't even connect to the
> database "träshableß":
> 
>     psql -d träshableß -U postgres
>     Passwort für Benutzer postgres:
>     psql: Fehler: Verbindung zum Server auf »localhost« (::1), Port 5432 fehlgeschlagen: FATAL:  Datenbank
»träshableß«existiert nicht
 
> 
> But in this case I see no garbled error message....
> I have to encode the database name  with MS-CP-1252 to connect:
> 
>     psql -d träshableß -U postgres
>     Passwort für Benutzer postgres:
>     psql (16.4)
>     Warnung: Konsolencodeseite (850) unterscheidet sich von der Windows-
>              Codeseite (1252). 8-Bit-Zeichen funktionieren möglicherweise nicht
>              richtig. Einzelheiten finden Sie auf der psql-Handbuchseite unter
>              »Notes for Windows users«.
>     Geben Sie »help« für Hilfe ein.

You should set code page 1252 with

    chcp 1252

You can automate that for new shells by running chcp from your
PowerShell profile.  Variable $profile gives you the filename.

-- 
Erik



AW: AW: Wrong german error message encoding

From
Date:
That does not help.
After doing it typing ä or ß results in wrong characters and the connection fails nonetheless:

    PS C:\tmp> chcp 1252
    Aktive Codepage: 1252.
    PS C:\tmp> psql -d tr„shableá -U postgres
    Passwort für Benutzer postgres:
    psql: Fehler: Verbindung zum Server auf »localhost« (::1), Port 5432 fehlgeschlagen: FATAL:  Datenbank »träshableß«
existiertnicht 

But the behaviour of psql is another issue, my original error report is about German error message encoding when
connectingdirectly via socket or libpq. 

Markus

-----Ursprüngliche Nachricht-----
Von: Erik Wienhold <ewie@ewie.name>
Gesendet: Donnerstag, 21. November 2024 15:53
An: radagast42@gmx.net
Cc: 'Daniel Gustafsson' <daniel@yesql.se>; pgsql-bugs@lists.postgresql.org
Betreff: Re: AW: Wrong german error message encoding

On 2024-11-21 13:28 +0100, radagast42@gmx.net wrote:
> When using psql from the command line I can't even connect to the
> database "träshableß":
>
>     psql -d träshableß -U postgres
>     Passwort für Benutzer postgres:
>     psql: Fehler: Verbindung zum Server auf »localhost« (::1), Port 5432 fehlgeschlagen: FATAL:  Datenbank
»träshableß«existiert nicht 
>
> But in this case I see no garbled error message....
> I have to encode the database name  with MS-CP-1252 to connect:
>
>     psql -d träshableß -U postgres
>     Passwort für Benutzer postgres:
>     psql (16.4)
>     Warnung: Konsolencodeseite (850) unterscheidet sich von der Windows-
>              Codeseite (1252). 8-Bit-Zeichen funktionieren möglicherweise nicht
>              richtig. Einzelheiten finden Sie auf der psql-Handbuchseite unter
>              »Notes for Windows users«.
>     Geben Sie »help« für Hilfe ein.

You should set code page 1252 with

    chcp 1252

You can automate that for new shells by running chcp from your
PowerShell profile.  Variable $profile gives you the filename.

--
Erik