encoding not working on man pages?

Malcolm Kay malcolm.kay at internode.on.net
Sat Aug 14 14:53:53 UTC 2004


On Saturday 14 August 2004 03:11, Ben Yau wrote:
> I've been working on what I think is a charset or encoding problem without
> any luck .  Hopefully someone here can help me out.
>
> I have two development redhat 8.0 servers which a previous admin had put
> together which look like they're almost identical.  However, there is some
> sort of encoding problem on one of them (call it server A).  It does not
> seem to be able to translate some encoding of some sort.  For example, on
> server B, bringing up a man page looks normal.
>
> like:
>  -a, --all
>               do not hide entries starting with .
>
>        -A, --almost-all
>               do not list implied . and ..
>
> On server A, it brings up what looks like encoding for dashes and hyphens
> and other non-alphabetic characters.  Instead of hyphnes/dashes it comes up
> with a's with little conehead hats.  Here is a cut and paste which
> hopefully will come through in the email:
>
> âa, ââall
>               do not hide entries starting with .
>
>        âA, ââalmostâall
>               do not list implied . and ..
>
>        ââauthor
>               print the author of each file

The problem is that the man pages take note of the LANG environment variable
and when it announces UTF-8 encoding is in effect it sends for example UTF-8 
coded 'minus' in place of 'hyphen' (which looks better) but translates as some 
unrelated latin1 characters in most character sets. You need a UTF-8 encoded 
font(registry iso10646) but this is rather restrictive. An alternative is 
to strip the .utf8 suffix from the LANG environment variable.

You will also find 'ls' lists files in what appears a very strange order to 
unix traditionalists. The GNU 'ls' apparently uses the locale collation sequence
for sorting rather the the traditional ASCII sequence. You can return to the
traditional by setting LC_COLLATE=C; but this will also affect those instances
when you might have really wanted the locale sequence. I guess if you are real 
keen you could write a script or create an alias for 'ls' that first set 
LC_COLLATE, executed the system ls, and then unset LC_COLLATE. 

On the other hand 'date' and 'ls' use US date/time ordering (which appears 
quite irrational to the rest of the world) no matter how you set LANG or
LC_TIME. All you'll change is the day and month names. I suspect the problem
here is in the locale definitions in RedHat.

Malcolm  






More information about the redhat-list mailing list