UTF-8 단말 에뮬레이터에서 ISO 8859-1 악센트 문자를 렌더링하는 luit. | |
| 원저자 | 율리우시 흐로보체크 |
|---|---|
| 발표일 | 2001년 |
| 안정화 버전 | 2.0
/ 2013년 2월 17일 |
| 저장소 | |
| 운영 체제 | 유닉스 및 유닉스 계열 |
| 종류 | 유틸리티 소프트웨어 |
| 라이선스 | MIT/X 컨소시엄 라이선스 |
| 웹사이트 | invisible-island |
luit는 컴퓨터 프로그램의 문자 집합을 변환하여, 서로 다른 문자 집합을 사용하는 단말 에뮬레이터에서도 출력을 올바르게 표시할 수 있도록 하는 유틸리티 프로그램이다. Iconv가 저장된 문자열이나 텍스트 파일의 문자 집합을 변환하는 것과 달리, luit는 대화형으로 실행되는 프로그램의 입출력을 변환한다.
luit의 주된 목적은 UTF-8 이외의 문자 집합을 사용하는 "레거시" 애플리케이션을 현대적인 단말 에뮬레이터와 함께 사용할 수 있도록 하는 것이다.
오늘날 luit는 ISO 8859-1과 같이 이전 인코딩만 지원하는 "레거시" 호스트에 연결할 때 필요할 수 있다. 예를 들어, 사용자가 UTF-8 단말에서 프랑스어 악센트 문자를 올바르게 렌더링하려면 "ssh legacy-machine"을 실행하는 대신, "LC_ALL=fr_FR luit ssh legacy-machine"을 실행해야 할 수도 있다.
luit는 ISO 2022 문자 집합 전환을 사용하는 애플리케이션의 출력을 올바르게 렌더링하는 데에도 사용된다. ISO 2022는 애플리케이션이 서로 다른 글꼴 사이를 "전환"할 수 있게 해주는 이전 표준으로, 예를 들어 선 그리기 문자와 텍스트를 섞거나 여러 언어 및 문자 집합으로 텍스트를 표시할 때 사용한다. UTF-8 자체는 글꼴 전환을 지원하지 않는데, 이는 인코딩이 상태 비저장 방식이며 각 고유 문자(선 그리기 문자 포함)에 고유한 수치 인코딩을 부여하기 때문이다. luit는 이 두 인코딩 사이를 변환하는 데 사용할 수 있다.
UTF-8 단말에서 올바르게 실행하기 위해 변환이 필요한 프로그램의 예로는 이전 버전의 이맥스/MULE, 그리고 선 그리기 문자를 그리기 위해 대체 문자 집합으로 전환하는 ANSI 이스케이프 코드에서 ISO 2022 전환 시퀀스를 사용하는 프로그램들이 있다.
luit는 로컬 컴퓨터에서 실행되는 프로그램의 출력을 UTF-8로 변환하기 위해 Xterm에 의해 자동으로 호출된다. 다른 컴퓨터에 원격으로 연결할 때는 사용자가 luit를 직접 실행해야 한다.
luit는 로케일의 문자 집합에 따른 ISO 2022 전환 및 ECMA-48 이스케이프 시퀀스에 따라 애플리케이션의 출력을 해석한다. 애플리케이션이 로케일의 문자 집합과 다른 언어를 사용 중이라면(luit가 없을 때는 단말 에뮬레이터의 기대치와 일치했을 수도 있는 경우), luit는 애플리케이션의 출력을 잘못 해석하여 단말로 깨진 출력을 보낼 수 있다.
luit는 2001년 율리우시 흐로보체크가 작성했으며, 당시 주요 리눅스 배포판들이 ISO 8859-1과 같은 "레거시" 인코딩에서 유니코드 문자 집합으로 이전을 시작하던 시기였다. 이후 luit는 널리 설치되는 기본 유틸리티가 되었으며, 일부 추산에 따르면 전체 리눅스 컴퓨터 시스템의 절반 이상에 존재한다. 또한 IBM AIX의 일부로도 포함되어 있다.
luit에는 두 가지 버전이 있다. 하나는 Xterm의 일부로 토마스 디키가 유지 관리하는 버전이며, 다른 하나는 이전에 Freedesktop.org에서 업데이트하던 버전이다. 일부 리눅스 배포판은 후자 버전을 X11 유틸리티 패키지의 일부로 제공한다. 그러나 GitLab으로 이전하는 과정에서 해당 포크 버전은 유지 관리되지 않아 중단되었다.