잘못된 문자를 표시하는 PuTTY를 수정하는 방법?


76

PuTTY를 사용하여 SSH를 통해 Windows 7 PC에서 Ubuntu 서버에 연결 하면 몇 가지 화면 오류가 발생합니다.

여기에 이미지 설명을 입력하십시오

즉 :

  • 미드 나잇 커맨더 (MC) 내부의 선택을 "더블 드로우"합니다 .
  • 선 요소와 같은 다른 문자는 잘못된 문자로 표시됩니다 (예 : "|"대신 "â").

Mac OS X에서 터미널과 SHH를 사용하여 동일한 Ubuntu 서버에 연결했지만 이러한 화면이 깨지지 않습니다 (즉, 모든 것이 올바르게 보이고 작동 함). 이미 PuTTY에서 글꼴 설정을 사용하여 Courier New에서 Consolas로 변경했지만 운이 없었습니다.

내 질문은 따라서 :

특수 문자를 올바르게 표시하고 화면 선을 이중으로 그리거나 덮어 쓰지 않도록 PuTTY를 구성하는 방법은 무엇입니까?


1
SecureCRT의 경우 : 옵션-> 세션 옵션-> 터미널-> 모양-> 문자 인코딩-> UTF-8을 선택하십시오. 저 같은 사람들을 도와주세요!
Vunb

답변:


72

거의 확실하게 PuTTY 설정 에서 잘못된 문자 세트를 설정했습니다 .

다음 명령을 실행하여 원격 시스템에서 문자 세트를 확인하십시오.

locale

이것은 다음과 같은 것을 반환해야합니다 :

LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

번역에서 PuTTY 설정을 확인 UTF-8하고 문자 세트로 설정 했는지 확인하십시오 .

PuTTY 재구성

선 그리기 설정을 조정해야 할 수도 있지만 아마도 아닐 것입니다.


14
모든 경우에 충분하지는 않습니다. 또한 다음 변수를 환경으로 내 보내야합니다. NCURSES_NO_UTF8_ACS=1 [추가 정보 ]
Piotr Jurkiewicz

2
경우에 locale반환 POSIX당신은 아마 usePAM는 SSHD의 설정에서 비활성화 한
user2693017

4
로케일이 같은 반환하는 경우 POSIX, 문제를 update-locale LANG=en_US.utf8명령 줄에서 - 볼 thomas-krenn.com/de/wiki/Locales_unter_Ubuntu_konfigurieren
koppor

@ michael-hampton, 내 시스템은 en_US.UTF-8을 사용하도록 구성되었습니다. 로케일에 대해 다른 장소에서 말하는 것이 다릅니다. 어떤 곳에서는 en_US를 사용해야한다고 언급하고 다른 곳에서는 de_DE를 사용해야한다고 언급합니다. grep과 다른 핵심 유틸리티가 로케일을 사용하여 문자 세트를 설정하기 전에 봤습니다. 이 변경의 의미는 무엇입니까?
alpha_989

@koppor에서는 로케일을 en_US로 변경하는 것에 대해 언급했으며 michael은 로케일을 de_DE로 변경하는 것에 대해 언급했습니다. 어느 것이 맞습니까?
alpha_989

34

aptitude문자 세트로 UTF-8이 있어도 데비안 프로그램에 문제가 있었습니다. 나를 위해 일한 것은 '연결> 데이터>'터미널 유형 문자열 '을'xterm '대신'putty '로 설정하는 것이 었습니다. 퍼티는 문자 시퀀스를 무시하여 그리기 모드로 전환합니다 : http : //www.chiark.greenend .org.uk / ~ sgtatham / putty / wishlist / utf8-plus-vt100.html

여기에 이미지 설명을 입력하십시오


2
우수한. 쉽고 작동합니다. (적어도 Debian / Ubuntu에서는 해당됩니다.)
Nate

1
이것은 PuTTY에서 잘 작동하지만 또 다른 (더 작은) 문제가 발생합니다. 원격 제어 창 제목 변경이 더 이상 작동하지 않습니다.
ADTC

우수한. Ubuntu Artful에서 ncmpc의 문제를 해결했습니다.
weberjn


8

두 가지 기본 요소는 Linux 및 기타 장소에서 지시 한대로 Linux의 퍼티 및 로케일 설정에서 Window / Translation UTF-8입니다.

또한 연결 / 데이터 / 터미널 유형 문자열을 putty 로 설정 하거나 Linux에서를 로 설정하면 퍼티가 도움이 될 수 있습니다 export NCURSES_NO_UTF8_ACS=1. 이 두 곳도 여러 곳에서 언급됩니다.

그러나 Courier 및 Lucida Console과 같은 기본 글꼴에 모든 유니 코드 문자가 없기 때문에 특정 문자에 대한 블록이 계속 표시 될 수 있습니다. http://dejavu-fonts.org/wiki/Download를 다운로드하여 설치 하고 퍼티를 사용하도록 설정하십시오.

이 마지막 트릭은 noping모든 그래픽 캐릭터를 보여주기 위해 필요했습니다 (권장!).


2
export NCURSES_NO_UTF8_ACS=1나를 위해 가장 잘 작동했습니다. 그 환경 설정을 유지하기 위해 실행할 때 -E옵션 을 사용해야한다는 것을 기억해야 합니다. sudoiftopsudo -E iftop
HeatfanJohn

5

필자의 경우 (우분투 14.04)이 문제로 인해 발생했습니다.

UsePAM yes    

/ etc / ssh / sshd_config에 /etc/pam.d/sshd로 입력 pam 구성은 기본적으로 / etc / default / locale을 사용자 환경에로드하는 역할을합니다.


이것은 나를 위해 그것을 고쳤다.
Martin

5

여기에 결국 당신이 가난한 VMS 녀석들 모두를 위해 :

PuTTY → 창 → 번역 → 원격 문자 세트 → DEC-MCS

나를 위해 일했다.


4

Docker 시스템 (로케일 및 시스템 관리자가 설정 한 시스템 모두)을 사용할 때 이에 대한 많은 솔루션을 찾고있었습니다. 내 퍼티에서는 모든 것이 좋았습니다 (나는 가지고있었습니다 UTF-8). 다른 SSH 클라이언트도 사용하고 있었고 정확히 같은 문제가있었습니다.

달리는:

mc -ac

문제를 해결하고 있었지만 (완전히는 아님) 완전한 해결책을 찾고있었습니다.

많은 제안을 읽은 후 마침내 문제를 해결 한 제안을 찾았습니다.

실행할 때 터미널에서 :

locale

어떤 로케일을 설정했는지 확인하십시오. 기본적으로 C로케일 이있었습니다 .

설치된 모든 로캘을 확인하려면 locale -a

예를 들면 다음과 같습니다.

C
C.UTF-8
POSIX

기본적으로.

솔루션은 다음 LANGC.UTF-8같이 로케일로 변수를 내보내고 있습니다 .

export LANG="C.UTF-8"

.bashrc프로파일에 자동으로 설정 되도록 추가 할 수 있습니다 .


LANG 변수 변경의 부작용은 무엇입니까? LANG로 C.UTF-8을 이미 가지고 있다면 왜 다시 내 보내야합니까?
alpha_989

2

파워 브로커 / pbis / 유사한 인증을 가진 호스트에 영향을 줄 수있는 pam과 관련된 또 다른 이유.

"lsass"발생에 대한 grep /etc/pam.d :

grep -r lsass /etc/pam.d

출력에서 다음과 같은 것이 보이면 :

/etc/pam.d/common-session:session       sufficient        pam_lsass.so

아마도 문제의 근본 원인 일 것입니다. 빠른 수정 방법은 pam_lsass 모듈 옆에있는 "충분한"을 "선택적"으로 바꾸는 것입니다.

/etc/pam.d/common-session:session       optional        pam_lsass.so

pam_env가로드되기 전에 /etc/pam.d/common-session (또는 비슷한 항목을 가진 다른 파일-파일이 거의 없을 수 있음)이 /etc/pam.d/sshd에 포함되어있을 수 있으므로 pam 모듈 처리가 완료된 경우 pam_env가 나오기 전에 / etc / default / locale이 사용자 환경에로드되지 않고 문자가 깨졌습니다.


2

15 년 후 나는 다시 한 번 화가 나고 다시 googled 발견하고 이것을 선택했다.

설정 변경 → 창 → 번역 → 원격 문자 세트 → "글꼴 인코딩 사용"

그리고 그것은 그것을 고쳤다.


2

나는에 설정했다 →의 번역 페이지에서 문자로 설정 :

ISO-8859-1 : 1998 (서유럽 라틴 -1)

그런 다음에 만 선 그리기 문자가 올바르게 나타납니다.


1

이 방법으로 mc를 실행하면 (로케일을 en으로 설정) 저에게 효과적입니다.

$ LC_ALL=en mc

1

나를 위해 일한 것은 "연결, 데이터, 터미널 유형 문자열 = ansi"와 "창, 번역, 원격 문자 세트 = 글꼴 인코딩 사용" set TERM=ansi과 unix 측이었습니다.

추신. MS-Word를 사용해야하는 경우 스마트 인용 부호를 끄십시오.


1
또한 최신 LInux 시스템이 아니라 구형이 아닌 Linux 시스템에 연결한다고 언급해야합니다.
Michael Hampton

1

내 문제는 퍼티가 UTF-8로 구성되었지만 원격 시스템은 ISO-8859-1이라는 것입니다.

서유럽에서 나는 퍼티와 그것을 잘 바꾸었다.

퍼티 스크린 샷

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.