[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Errors in commands containing UTF8 characters are printed with UTF8
From: |
Chet Ramey |
Subject: |
Re: Errors in commands containing UTF8 characters are printed with UTF8 byte expansion |
Date: |
Sun, 02 Mar 2014 17:07:01 -0500 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 |
On 3/1/14, 4:12 PM, Yuri wrote:
> When I accidentally type some nonexistent command containing UTF8
> characters, an error has UTF8 characters expanded:
> $ ЫZZZ
> bash: $'\320\253ZZZ': command not found
>
> I think bash shouldn't discriminate against UTF8 characters in error
> messages, and shouldn't expand them. If some international users wish to
> have UTF8 in their commands, bash should preserve them in all messages.
>
> My LANG is en_US.UTF-8, and changing it to ru_RU.UTF-8 doesn't seem to make
> a difference. Same with LC_ALL.
This depends on your system, your locale, and your bash version. On
Mac OS X, bash-4.2 and bash-4.3 don't use the $'...' notation. On RHEL5,
bash-4.2 uses the $'...' notation and bash-4.3 does not. Other systems
are similar.
Bash-4.3 does do things differently than bash-4.2: it checks whether or
not a wide character corresponding to a multibyte character is printable
using iswprint and uses $'...' if that tests false. Bash-4.2 relies
primarily on the behavior of isprint().
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU chet@case.edu http://cnswww.cns.cwru.edu/~chet/