Subject: BUG #19539: psql 17.6 on Windows 11 prints random garbage characters in Russian localized output of \d

From: PG Bug reporting form <[email-masked]>
Date: Mon, 29 Jun 2026 14:55:10 +0000

The following bug has been logged on the website:

Bug reference:      19539
Logged by:          Maria Adyakova
Email address:      [email-masked]
PostgreSQL version: 17.6
Operating system:   Windows 11
Description:        

Environment

PostgreSQL: 17.6
psql: 17.6
Windows 11
Official EnterpriseDB installer
UTF-8 console (code page 65001)
server_encoding = UTF8
client_encoding = UTF8

Description

When running \d <table> in Russian localization, the output sometimes
contains random garbage Unicode characters immediately after the localized
header "По умолчанию".

Example:

Таблица "public.articles"
 Столбец | Тип | Правило сортировки | Допустимость NULL | По умолчанию
⫐鄢ʧ

The garbage characters change every execution.

Switching the locale to English:
set LANG=C

completely eliminates the problem.

The issue reproduces even when starting psql with:
psql -X
so it does not appear to be related to user configuration.

Expected behavior:
No extra characters after the localized header.

Actual behavior:
Random Unicode garbage appears after "По умолчанию" on every invocation.

---

From: Thomas Munro <[email-masked]>
Date: Wed, 1 Jul 2026 14:36:05 +1200

> The garbage characters change every execution.

Do any other languages show clues?  Could you please try Ukrainian,
Greek, Japanese?

#: describe.c:2070 describe.c:4572
msgid "Default"
msgstr "По умолчанию"

         headers[cols++] = gettext_noop("Default");

That is then fed through pg_wcsformat().  I wonder if that could be
confused about encodings and NUL terminators or something, but I don't
have a specific theory.  Could you please locate the relevant psql.mo
file and share it, so we can check it contains the expected byte
sequence?