"Unprintable" 8-bit characters

Conrad J. Sabatier conrads at cox.net
Wed Nov 9 02:09:33 UTC 2011

On Tue, 8 Nov 2011 19:17:27 -0600 (CST)
Robert Bonomi <bonomi at mail.r-bonomi.com> wrote:

> On Tue, 8 Nov 2011 18:42:36 -0600, "Conrad J. Sabatier" wrote:
> >
> > I've been trying to understand what the deal is with regards to the
> > displaying of the "extended" 8-bit character set, i.e., 8-bit
> > characters with the MSB set.
> Quite simply Unix dates from the days where the 8th bit was used as a
> 'parity' bit.  Allowing detection of *all* single-bit errors --
> especially over the notoriously un-reliable connections known as
> 'serial ports'.
> >
> > More specifically, I'm trying to figure out how to get the "ls"
> > command to properly display filenames containing characters in this
> > extended set.  I have some MP3 files, for instance, whose names
> > contain certain European characters, such as the lowercase "u" with
> > umlaut (code 0xfc in the Latin set, according to gucharmap), that I
> > just can't get ls to display properly.  These characters seem to be
> > considered by ls as "unprintable", and the best I've been able to
> > produce in the ls output is backslash interpretations of the
> > characters using either the -B or -b options, otherwise the default
> > "?" is displayed in their place.
> >
> > The strange thing is that these characters will display just fine in
> > xterm, gnome-terminal, etc.  I can copy and paste them from the
> > gucharmap utility into a shell command line or other application,
> > and they appear as they should, but ls simply refuses to display
> > them.  I can print them using the printf command, even bash's
> > builtin echo seems to have no problem with them.  Only ls appears
> > to have this problem.
> >
> > I've experimented with using various locales, using the LC_*
> > variables, as well as the LANG variable (as documented in the
> > environment section of the ls man page), all to no avail.
> Obviously you never read as far as the '-w' switch.  <grin>

Just a quickie followup:

Setting LC_ALL=en_US.UTF-8 and using "ls -w" was, in fact, the magic
key (at least, in any of the X terminal apps; still getting the little
"exponential n" in the console)!

Thank you so much.  I'll sleep much better tonight.  :-)

Conrad J. Sabatier
conrads at cox.net

More information about the freebsd-questions mailing list