CentOS 7의 콘솔이 중국어를 지원하도록 만드는 방법은 무엇입니까?
localectl 명령을 사용했습니다. 결과는 다음과 같습니다.
System Locale: LANG=zh_CN.UTF-8
VC Keymap: cn
X11 Layout: cn
이 세트는 중국인을 대상으로 합니다. 그러나 ls 명령을 사용하여 폴더 및 파일을 나열하면 일부 폴더 및 파일이 "■■■■"로 표시됩니다.
답변1
당신이 보는 것
Linux 커널에는 터미널 에뮬레이터 프로그램이 내장되어 있습니다. 열린 파일 핸들이 있는 실행 중인 프로세스로 표시되지 않습니다. 이는 내부 커널 인터페이스를 사용하여 액세스하는 프레임 버퍼 및 입력 이벤트 하위 시스템 위에 위치합니다. 이는 일련의 커널 가상 터미널 장치 등으로 애플리케이션 모드 시스템에 제공됩니다 /dev/tty1
. 아래 의사 파일은 /sys
활성 KVT 번호와 일련의 CGA 스타일 비디오 버퍼 장치 /dev/vcsa1
등을 보여줍니다. 이것이 당신이 고용하는 것입니다.
이 터미널 에뮬레이터는 상당히 엄격한 리소스 제약이 적용되는 커널 모드 시스템입니다. 따라서 역사적으로 대량의 (커널 주소 공간) 메모리가 필요한 대형 문자 세트를 지원한 적이 없습니다. 이것이 바로 이 캐릭터들을 "헬레니즘화"한 이유입니다.
이 문제에 대한 확실한 해결책은 터미널 에뮬레이터를 커널 모드에서 벗어나는 것입니다. 이것은 수년간 논의되었습니다. 나는 약 10년 전에 이에 관한 백서를 썼습니다.
물론, 많은 X Window System 터미널 에뮬레이션 프로그램에 대해 들어보셨을 것입니다.이미 마쳤어. 이는 X 서버가 표시하는 X 창에 문자 모양을 렌더링하고 큰 문자 집합을 처리할 수 있는 일반 응용 프로그램 모드 프로그램입니다. 따라서 해당 터미널 에뮬레이터에서 중국어를 사용하는 데 아무런 문제가 없습니다.
사용자 공간 가상 터미널
가지다반품그러나 터미널 에뮬레이터 프로그램은 I/O를 위해 X 서버를 사용하지 않고 프레임 버퍼 및 입력 이벤트 하위 시스템을 위한 (외부) API 위에 계층화됩니다. 커널에 내장된 터미널 에뮬레이터 프로그램과 마찬가지로 프레임 버퍼와 입력 이벤트 하위 시스템을 직접 사용하지만 커널에 의존하지 않으므로 커널에 구속되지 않는 일반 응용 프로그램 모드 프로그램이기도 합니다. 이를 통해 중국어도 표시할 수 있습니다. 실제로 그 중 몇몇은사용자 공간 가상 터미널프로그램은 이것을 매우 높이 평가되는 기능으로 사용합니다.
여기에는 다음이 포함됩니다.
- 종캉— CJK I/O 처리를 위한 사용자 공간 가상 터미널. 특히 강점은 ISO 2022 비UTF 인코딩을 처리하는 것입니다. 특히 약점은 UTF 인코딩입니다.
- 페이스북 용어— 다음을 포함하여 여러 포크를 생성한 사용자 공간 가상 터미널공동 용어. 여기에는 다양한 CJK 입력 방법 플러그인이 있습니다.
- bogl-bterm — 예를 들어 다음을 생성한 사용자 공간 가상 터미널입니다.니템.
console-terminal-emulator
그리고 도구console-fb-realizer
간식— Linux 및 FreeBSD/PC-BSD 커널 가상 터미널을 복제하도록 설계된 사용자 공간 가상 터미널입니다. 설계상 X 라이브러리에 의존하지 않습니다. 또한 설계상 ISO 2022는 지원하지 않으며 UTF만 지원합니다. (이 답변을 작성하는 시점에서는) CJK 입력 방식에는 아직 매우 취약합니다.- 킬로미터 스콘— 시스템과 밀접하게 연결된 사용자 공간 가상 터미널
logind
systemd의 서버와 "좌석" 개념.
폰트
그렇다면 중국어 글꼴이 필요합니다. 이것은 약간 복잡합니다.
이러한 사용자 공간 가상 터미널 프로그램 중 일부는 글꼴 처리, 키보드 매핑, CJK 입력 방법 등을 위해 X 라이브러리를 사용합니다. X 클라이언트는 아니지만 X 라이브러리에 종속됩니다. 따라서 X 글꼴을 사용할 수 있습니다.
다른 사람들은 다른 계획을 가지고 있었습니다.
bogl-bterm
고유한 특수 글꼴 형식이 있습니다. 하나는 이 도구를 사용하여 BDF 글꼴을 BOGL 글꼴로 변환하는 것입니다bdftobogl
.- nosh
console-fb-realizer
도구 사용 및새로운 FreeBSD 10.1 커널 가상 터미널 하위 시스템이것이 실제로 사실이므로 FreeBSD 글꼴 조작 도구가 공유되었습니다.vtfontcvt
BDF 글꼴을 변환하는 데 사용됩니다.저는 일부 CJK 글꼴을 사용하고 nosh 사용자 공간 가상 터미널에 일부 중국어 매뉴얼 페이지(Debian의)를 표시하여 이 작업을 직접 수행했습니다.
추가 읽기
답변2
Linux 콘솔 자체는 중국어 표시를 지원하지 않지만 일부 대체 콘솔(예: kmscon)을 실행하여 X를 시작하지 않고도 중국어를 표시할 수 있습니다.
답변3
이를 설정하려면 localectl 명령을 사용하십시오. 아래는 예시입니다
localectl status # to display locale settings localectl set-locale LANG=en_GB.utf8 # to set the Language localectl list-locales # to lists locales locale list-keymaps # list keyboard mappings locale set-keymap uk # sets the key map