터미널 디스플레이는 ASCII가 아닙니까? UTF-16 16진수 코드의 문자

터미널 디스플레이는 ASCII가 아닙니까? UTF-16 16진수 코드의 문자
todoroki@todoroki-VJZ13B ~>printf "ä\n"
                           echo "ä"
                           ä
ä
ä
\udcc3\udca4: \u30b3\u30de\u30f3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093

에 따르면UTF-16 디코딩 도구, \u30b3\u30de\u30f3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093is コマンドが見つかりません(="명령을 찾을 수 없음"), 이는 제가 예상하는 올바른 일본어 출력입니다.

printf 및 echo 결과를 보면 UTF-8이 제대로 작동하는 것 같습니다.

이는 모든 쉘 출력에서 ​​발생합니다. 예를 들어 ls파일 이름의 일본어 문자는 UTF-16 16진수로 표시됩니다.
편집하다: ls출력은 utf-16이 아니지만 "8진 이스케이프 시퀀스"(가 \346\234\210) 입니다.

lsC, 및 :이라는 이름의 3개 폴더가 포함된 あいう디렉토리 :

todoroki@todoroki-VJZ13B ~/test> ls -l
total 12
drwxr-xr-x 3 todoroki todoroki 4096 10月  4 15:02  C/
drwxr-xr-x 2 todoroki todoroki 4096 10月 11 09:04 ''$'\343\201\202\343\201\204\343\201\206'/
drwxr-xr-x 2 todoroki todoroki 4096 10月 11 09:05 ''$'\346\234\210'/

( 파일 생성 날짜는 제대로 나오는데 디렉터리 이름은 안 나오니까 이상하네요 )

less vi nano동작은 더욱 이상합니다. 아래와 같은 파일(a.txt, gedit를 사용하여 생성됨)


ä

다음과 같이 표시됩니다.

less(그것은 불평한다 ) "a.txt" may be a binary file. See it anyway?:

<E3><81><82>
<E3><81><84>
<E3><81><86>
<C3><A4>

존재하다 vi:

�~A~B
�~A~D
�~A~F
ä

그리고 nano:

 ^a^b
 ^a^d
 ^a^f

내가 무엇을 했는지는 기억나지 않지만 적어도 이틀 전(그리고 6개월 이상 전)에는 일본어 문자가 올바르게 표시되었습니다.

무엇이 문제이고 어떻게 복구할 수 있나요?

답변1

실수로 fish구성 파일을 다음 줄로 읽도록 ~/.profile업데이트
했습니다 locale=C.

으로 변경했더니 locale=C_UTF8모든 것이 복원되었습니다.

관련 정보