ssh 및 문자 인코딩 누군가가 유니

언제를 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 값에 문자 세트가 표시되지 않는 방법에 유의하십시오).