본문 바로가기

개발&컴퓨터/서버관리

PuTTY 한글 깨짐 문제 해결하기

반응형

Putty 프로그램을 사용하다 보면 종종 어떤 서버에서는 한글이 깨져서 보이는 경우가 있습니다.

 

Putty 가 기본으로 UTF-8 문자 집합(Character Set)을 사용하는데, 서버의 locale 인코딩 값이 UTF-8 이 아닌 경우에 문제가 발생합니다.

보통 한국어로 된 리눅스 서버를 운용한다면 아마 서버 locale이 EUC-KR 문자 집합으로 되어 있을 것입니다.

 

참고로 서버 인코딩 정보를 확인하는 방법은 서버에 접속하여 locale 명령어를 실행하면 됩니다.

 

아래와 같이 서버에 접속하여 안내 문구가 나올만한 명령어를 입력해봅니다.

 

[aaa@localhost ~]$ cd aabbccddee (존재하지 않는 디렉토리)

 

 

무언가 메시지가 떴는데, 전혀 알아볼 수가 없네요.

 

어떻게 해야 할까요? 문자 집합을 서로 맞추어 주면 될 것 같은데요.

서버를 UTF-8 환경으로 변경해 줄 수도 있지만, 계속 사용해왔던 서버의 환경을 변경하는 것은 조금 꺼려지기도 하는 부분입니다.

그리고 굳이 그럴 필요도 없이 Putty의 환경을 변경함으로써, 간단히 해결될 문제이기도 하지요.

 

단순히 Putty 의 문자 집합을 변경해 보도록 하겠습니다.

 

 

방법1) 가장 쉬운 방법! - Putty 의 설정 화면에서 문자 집합 설정.

 

 PuTTY를 실행시킵니다!!

 접속하려는 Host Name을 입력 또는 하단의 저장 목록에서 로드(Load) 합니다.

 그리고 좌측 트리 메뉴에서 Window - Translation 을 선택합니다.

 

 

 

아하! 여기가 접속 환경에 맞는 문자 집합을 설정할 수 있는 곳이군요!

 

Remote character set 선택 박스에서 서버의 문자 집합을 선택하면 됩니다.

 

그런데 EUC-KR 은 찾아봐도 없군요. 그럼 EUC-KR 과 호환이 되는 문자 집합이 있을까요?

네 있습니다. CP949 인코딩은 EUC-KR 의 확장된 버전으로 하위 호환성을 가지고 있는 문자 집합니다.

 

 

여기서 CP949를 선택하여 주면 문제가 해결됩니다.! - 끝 -

 

 

앗!! 이런.. 제 PuTTY에 CP949 문자 집합 또한 없습니다.

강제로 CP949를 입력하고, 접속해도 제대로 한글이 보이지 않습니다.

 

 

방법2) 다음 방법! - Putty 의 레지스트리에서 FontCharSet 설정하기

그러면 이제 레지스트리를 건드릴 차례입니다. 해당 문자 집합 설정 정보를 저장하는 레지스트리에 강제로 우리가 원하는 문자 집합을 설정해 보겠습니다.

 

윈도우 하단의 시작 버튼을 클릭하여 [실행] - regedit.exe 를 입력한 후, 실행합니다.

  

 

 

레지스트리 편집기가 실행됩니다.

 

좌측 트리 메뉴에서

 

[HKEY_CURRENT_USER - Software - SimonTatham - Putty - Sessions]

 

로 들어갑니다.

 

Sessions 내에는 Putty에 등록된 서버 접속 정보 목록들이 있습니다.

한글이 깨지는 서버의 세션 정보를 클릭합니다.

 

 

그리고 우측 메뉴에서 FontCharSet 항목을 확인합니다. 값이 0x00000000 (0) 으로 설정되어 있습니다.

이를 16진수로 81(0x81) 또는 10진수로 129 를 입력한 후, 확인을 누릅니다.

 

 

0x81 은 한글의 Charset 을 의미하는 값입니다.

 

아래와 같이 FontCharSet 이 0x00000081 (129) 로 변경되었습니다.

 

 

이제 다시 PuTTY로 접속해 보겠습니다.!!

문제가 해결 되었습니다. - 끝-

 

아니 아직도 안된다구요!!!!?!?!?!??!

 

 

방법3) 마지막 방법! - Putty 의 레지스트리에서 LineCodePage 설정하기

 

 Putty에는 CharacterSet을 지정할 수 있는 또다른 항목이 있습니다.

 

 

 

 LineCodePage 인데, 값이 아마 기본 인코딩을 사용한다는 Default 값으로 설정되어 있던지, 또는 공란으로 되어 있을 것입니다. 

 여기에는 실제 문자 집합 명을 입력할 수 있습니다.

 

 아래와 같이 LineCodePage 의 값을 CP949 로 설정합니다.

 

 

 

 값이 정상적으로 설정되었습니다. 이제 서버에 다시 접속해 보겠습니다.

 

 

 

 드디어 한글이 보입니다!! (이 방법까지 썼는데, 한글이 제대로 보이지 않는다면 서버가 한글이 아닌 다른 인코딩으로 되어 있는 경우일 것입니다. 서버에 맞는 문자 집합만 설정해 주시면 됩니다. 단, 문자 집합이 한글이 아닌 서버겠죠?^^)

 

 

문제가 해결되었습니다. - 정말 끝! -

 

 

많은 분들에게 도움이 되었으면 합니다.^^

반응형