나는 25년 동안 익숙했던 데비안 대신 새 PC에 OpenSuse Tumbleweed를 설치했습니다.
이제 UTF-8에 문제가 있습니다. 예를 들어 cat some_file
UTF-8로 인코딩된 유니코드 문자를 포함하면 일부 쓰레기가 표시되고 입력 방법이 제대로 작동하지 않습니다.
예를 들어 이러한 문제를 해결하기 위해 XTerm을 시작하면 LANG=C.utf8 xterm
새 XTerm에서는 모든 것이 잘 됩니다.
내가 원하는 것은 내 LANG
전역을 설정하는 C.utf8
것이지만 내가 찾은 모든 (모든) 가이드는 Yast를 사용하여 작업을 수행하는 방법을 설명하고 Yast는 수십 개의 다른 언어를 나열하지만 C
.
구성 파일에는 /etc/sysconfig/language
100줄이 넘는 줄이 있어서 매우 혼란스럽고, 수정하기에 적합한 위치에 있는지 확신이 없습니다.
LANG=C.utf8
Yast를 영구적으로 사용하거나 Yast를 사용하지 않으려면 어떻게 해야 하나요 ?
답변1
사용 localectl(1)
:
localectl set-locale LANG=C.UTF-8
명령의 매뉴얼 페이지에서:
localectl은 시스템 로캘 및 키보드 레이아웃 설정을 쿼리하고 변경하는 데 사용할 수 있습니다.
시스템 로캘은 사용자가 로그인하기 전의 시스템 서비스 및 UI(예: 디스플레이 관리자)에 대한 언어 설정과 사용자가 로그인한 후의 기본 설정을 제어합니다.
LANG
이 명령은 파일을 변경합니다 /etc/locale.conf
. 매뉴얼 페이지에서 locale.conf(5)
:
/etc/locale.conf 파일은 시스템 전체의 로케일 설정을 구성합니다. 초기 시작 시 systemd(1)에서 읽습니다.
창 관리자와 서비스가 이전 로케일을 사용하여 시작되었으므로 이 변경 사항을 적용하려면 시스템을 다시 시작해야 합니다.
답변2
실제로 무차별 대입이 때때로 도움이 될 수 있습니다. 나는 홈 디렉토리에 있는 모든 파일 LANG=
과 내가 발견한 수많은 정크 파일을 "탐색"했습니다.
$ find . -type f -print0 | xargs -0 grep LANG= 2>/dev/null
...
./.config/plasma-localerc:LANG=C
...
$
(소문자, 대시 없음) 으로 변경하고 LANG=C.utf8
로그아웃했다가 로그인했더니 이제 행복한 사람이 되었습니다.
따라서 시스템 수준에서, 예를 들어 새 사용자에게 전파하려면 수정해야 하며 /etc/locale.conf
내용은 (소문자, 대시 없음)이어야 하며 환경 변수가 시스템과 다른 LANG=C.utf8
그래픽 플라즈마 셸 사용자의 경우 LANG
-wide 기본값, 수정할 파일은 ~/.config/plasma-localerc
.