Re: bin/60496: Locale-dependent UTF-8 issue over SSH session

"Robert Elz via gnats" <[email protected]> Sat, 25 Jul 2026 05:15:04 +0000 (UTC)
Newsgroups gmane.os.netbsd.bugs
Message-ID <[email protected]>
The following reply was made to PR bin/60496; it has been noted by GNATS.

From: Robert Elz <[email protected]>
To: [email protected]
Cc: 
Subject: Re: bin/60496: Locale-dependent UTF-8 issue over SSH session
Date: Sat, 25 Jul 2026 12:09:11 +0700

     Date:        Fri, 24 Jul 2026 15:10:00 +0000 (UTC)
     From:        "[email protected] via gnats" <[email protected]>
     Message-ID:  <[email protected]>
 
   | In the console, the "&#65533;" is shown as space, so the issue
   | is not visible there.
 
 It is the substitution character, used for invalid values,
 which in different environments can appear as almost anything.
 
 I will deal with the decimal point issues that Taylor pointed out
 the FreeBSD fix for first, though those are (kind of) unrelated to this PR,
 as they're simpler changes, and then deal with the grouping character
 (the thousands_sep case, though "thousands" isn't necessarily it)
 that is, the issue here, after that.
 
 In this case I am not sure that the immediate problem isn't an issue
 with the locale definition however.  What do you expect to see in the
 Norweigan locale for this?   If it is the same as the German version,
 then nothing I do to fix printf (printf(1) or printf(3) - here printf(1)
 is simply printing whatever printf(3) produces) will achieve that, as the
 German locale has the grouping character set to '.', whereas Norweigan
 locale has the grouping character defined to be 0xFFFF which seems to me
 to be an implausible value (unless perhaps it is intended to suppress
 grouping), but so does the French (fr_FR at least) locale, so perhaps that
 value does mean something special to the locale compiler (beyond my sphere
 of influence for sure).
 
 I can however, with FreeBSD's assistance, fix things so that multi-byte
 values (such as an unbreakable space, as one possibility) which exist in
 the compiled locale module, work as they should.
 
 kre