변수가 gnome-terminal (및 문자 인코딩 환경 설정 옵션)으로 어떻게 작동하는지 배우 려고합니다 $LANG
. 필자는 기본 문자 집합으로 iso8859-1 (latin1)을 사용했으며 모든 파일 이름이 그대로 인코딩되었습니다.
다음 테스트 ls -l
에서는 파일 이름에 스페인어 악센트 문자가 포함 된 디렉토리를 만듭니다.
사례 # 1 :
- ISO-8859-1에 대해 구성된 그놈 터미널
LANG
"en_US-iso8859-1"로 설정- 결과 : 모든 파일을 올바르게 볼 수 있습니다
사례 # 2 :
- UTF-8에 대해 구성된 그놈 터미널
LANG
"en_US-iso8859-1"로 설정- 결과 : 모든 스페인어 문자에 가비지 문자가 표시됩니다. 터미널의 문자 인코딩을 변경했을 때 예상됩니다.
사례 # 3 :
- ISO-8859-1에 대해 구성된 그놈 터미널
LANG
"en_US-UTF-8"로 설정- 결과 : 모든 스페인어 문자에 가비지 문자가 표시됩니다.
이 마지막 경우에 문자가 깨지는 이유는 무엇입니까? ls 의 출력이 파일 이름을 그대로 그놈 터미널로 보내서는 안됩니까? 그리고 gnome-terminal은 ISO-8859-1 용으로 구성되었으므로 제대로 표시 될 것으로 기대했을 것입니다.
잠시 동안 나는 아마도 bash가 내 $LANG
변수를 고려 하고 약간의 변환을 수행 한다고 생각했습니다 . 그런 다음 터미널을 UTF-8로 전환했지만 여전히 문자를 올바르게 볼 수 없습니다. 심지어 ls의 출력을 xxd로 파이프하고 놀랍게도 ISO-8859-1과 같이 인코딩 된 파일을 여전히 봅니다.
정리 : 내 목록에 ISO-8859-1 문자가 포함되어 있고 터미널 에뮬레이터가 동일한 문자 인코딩으로 구성된 경우 : LANG
달리 설정 하면 누가 변환을 수행 합니까?
도움을 주셔서 감사합니다.
크라 코니아