Terminal.app 및 iTerm2에서 실행되는 일부 응용 프로그램의 유니 코드 기호 관련 문제 test$ ⚑ -bash: ⚑: command

Darwin DeoGloria 13.3.0 Darwin Kernel Version 13.3.0: Tue Jun  3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64 x86_64

새로운 사용자 계정. UTF-8이 설정된 Terminal.app 및 iTerm2. 악센트 문자는 모든 응용 프로그램 ( “å, ä, ö, é”)에서 잘 작동합니다. 그러나 일부 명령 줄 응용 프로그램에는 일부 (와이드?) 유니 코드 문자가 표시되지 않습니다. 나는 weechat에서 처음 발견했지만 bash shell에서는 정상적으로 작동합니다.

매버릭스 bash :

DeoGloria:~ test$ echo -e "\xE2\x9A\x91"

마우스로 플래그 문자를 복사하여 붙여 넣기

DeoGloria:~ test$ 
-bash: ⚑: command not found

bash가 예상대로 작동합니다. 기본 zsh 시작, 구성 완료

DeoGloria:~ test$ zsh
DeoGloria:~ test$ echo -e "\xE2\x9A\x91"

괜찮아 보여 그러나 붙여 넣을 때는 아닙니다.

DeoGloria% <2691>
zsh: command not found: \u2691

로케일 설정 :

DeoGloria% locale
LANG="sv_SE.UTF-8"
LC_COLLATE="sv_SE.UTF-8"
LC_CTYPE="sv_SE.UTF-8"
LC_MESSAGES="sv_SE.UTF-8"
LC_MONETARY="sv_SE.UTF-8"
LC_NUMERIC="sv_SE.UTF-8"
LC_TIME="sv_SE.UTF-8"
LC_ALL=

zsh에서 emacs 또는 vi를 시작하고 “⚑”를 붙여 넣으면 정상적으로 작동합니다. 나노에서는 작동하지 않습니다. 시각적이지 않은 캐릭터를 얻습니다.

ncurses와 관련된 문제가 의심되었지만 bash, zsh, nano, emacs는 모두

/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)

아이디어가 없습니다. 어떤 포인터?



답변

재미있는 질문! 나는 내 편에서 몇 가지 테스트를했다.

zsh

xXx:~/ $ <2691>
zsh: command not found: \u2691
xXx:~/ $??
zsh: command not found: ??
xXx:~/ $ 
zsh: command not found: 

다른 쉘로 몇 가지 테스트를했는데 결과가 동일하지 않습니다.

sh-3.2$ 
sh: ⚑: command not found

세게 때리다

좋아, 그것은 다음과 같아야합니다 sh:

bash-3.2$ 
bash: ⚑: command not found

csh / tcsh

[LeBouc-xXx:~] xXx% \U+2691
⚑: Command not found.

분명히 모든 쉘이 동일한 입 / 출력 옵션으로 설정되지 않았습니다. xterm / terminal 및 iTerm2를 사용하여 소프트웨어 종속 문제가 될 수 있는지 확인했습니다. 그것은 모든 곳에서 동일합니다.

검색 / 읽을 시간이 없지만 zsh 라인 편집기에 대한 유용한 정보를 여기 에서 찾을 수 있습니다 .

당신이 그것을 발견하면, 최신 정보를 유지, 나는 당신의 질문에 대한 최종 답변을 기쁘게 생각합니다.


답변