Telnet 한글입력 문제

Telnet을 이용해 서버에 접속하여 한글을 입력 할 경우 한 글이 제대로 입력되지 않고 깨지거나 이스케이프 문자로 인식되어 처리 되는 (사용자 입장에서는 갑자기 이상한 메시지와 함께 telnet> 프롬프트가 떠버리는) 증상이 보이는 경우가 있다.

이 경우에는 서버의 언어 설정이 ko_KR.UTF-8과 같이 되어있더라도 입력이 제대로 안 되는데 접속 할 때 아래와 같이 접속을 해보도록 하자.

$ telnet -8 서버옵션

-8 옵션은 8bit 모드(바이너리 모드라고도 함)로 데이터를 전송하도록 지시하는 것으로 telnet 자체가 기본적으로 7bit로 표현가능한 ASCII 코드에 기반하여 문자를 전송하도록 고안 되었기 때문에 별도의 옵션으로 존재한다.

따라서, 7bit로 입력을 전달하게 되면 한글과 같은 입력은 제대로 전송되지 않고 한글 코드 중간의 값들이 이스케이프 문자로 인식되는 문제가 발생한다.

단순한 문제이고 man page에 해당 옵션에 대한 설명이 있지만 의외로 많은 분들이 이 옵션을 몰라서 물어보기에 문서로 남긴다.

그리고, 이제는 telnet은 버리고 ssh를 사용하도록 하자. :)