Thread: Wrong german error message encoding
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
> 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
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
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
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