언제를 ssh
내 VPS에, 나는 한 irssi
화면에서 실행. 누군가가 유니 코드 문자 (예 : © 또는 €)를 보내면 세션 irssi
의 화면을 통해 사용할 때 가비지를 표시합니다 ssh
. irssi
로컬 컴퓨터에서 실행되는 irssi에서 irssi의 프록시 모듈 을 사용하여 연결하면 올바르게 표시됩니다.
마찬가지로 VPS (화면 외부)에서 ghci를 실행하고 해당 문자 중 하나를 입력하면 충돌이 발생합니다.
따라서 분명히 ssh 또는 시스템 설정에서 VPS에 연결하면 문자 인코딩 문제가 발생합니다.
이 원인을 찾아서 해결하려면 어떻게해야합니까?
세부:
클라이언트 시스템
- 아치 리눅스 x64
- UTF-8 인코딩
VPS 시스템
- 우분투 서버 10.04
- 알 수없는 인코딩이 사용되었습니다. 이것을 어떻게 찾습니까? (난 그냥 아치에 대한 내 /etc/rc.conf를 봐야한다)
답변
locale
명령을 실행하면 로케일 설정에 대한 정보가 제공됩니다. 문자 인코딩은 LC_CTYPE
설정에 의해 제공됩니다 .
우분투에서는 기본 로케일 설정이에 /etc/default/locale
있습니다. VPS LC_CTYPE
에서 설정 을 통해 문자 인코딩을 변경할 수 있습니다 ( ~/.profile
예 :
export LC_CTYPE=en_US.UTF-8
en_US.UTF-8
로케일이 사용 가능한지 확인해야합니다 . Ubuntu는 요청 된 로캘에 대한 로캘 데이터 만 생성합니다. 패키지가 language-pack-en-base
설치되어 있으면 모든 영어 로켈을 사용할 수 있어야합니다. 당신은 수동으로 그들의 생성을 요청할 수 있습니다
sudo locale-gen en
/var/lib/locales/supported.d/local
특정 로케일이 설치되도록 항목을 추가 할 수도 있습니다 (예 : 라인 추가 en_US.UTF-8 UTF-8
).
답변
실제로 LC_CTYPE에 지정된 값은 로케일 이름 입니다. 문자셋 인코딩의 이름은 일반적이지만 필수는 아닙니다.
그러나 문자셋을 알고 싶다면 명령은 locale -k charmap
입니다.
~$ LC_CTYPE=C locale -k charmap
charmap="ANSI_X3.4-1968"
~$ LC_CTYPE=fr_BE locale -k charmap
charmap="ISO-8859-1"
(위의 LC_TYPE 값에 문자 세트가 표시되지 않는 방법에 유의하십시오).