본문 바로가기

Linux

[Linux] 한글깨짐 에러 수정 및 설명

에러 : SecureCRT 프로그램 사용하여 서버에 접속하여 프로그램 실행 중 한글이 깨져보이는 현상이 발생됩니다

 

원인 : 리눅스 서버에 설정된 인코딩으로는 파일내에 들어가있는 한글을 읽어낼 수 가 없기 때문이고, 두번째는 보통 SecureCRT 등등 서버접속을 위한 사용하는 프로그램에서 설정한 언어셋과 다른 경우에도 위와 같은 현상이 발생합니다

 

해결방법 : 서버에서 한글을 표현할 수 있도록 인코딩을 수정하고, 사용하는 putty, securecrt 프로그램에서도 언어셋팅을 맞춰주시면 됩니다

 

현재 언어셋 확인

# locale
LANG=en_US.iso885915
LC_CTYPE="en_US.iso885915"
LC_NUMERIC="en_US.iso885915"
LC_TIME="en_US.iso885915"
LC_COLLATE="en_US.iso885915"
LC_MONETARY="en_US.iso885915"
LC_MESSAGES="en_US.iso885915"
LC_PAPER="en_US.iso885915"
LC_NAME="en_US.iso885915"
LC_ADDRESS="en_US.iso885915"
LC_TELEPHONE="en_US.iso885915"
LC_MEASUREMENT="en_US.iso885915"
LC_IDENTIFICATION="en_US.iso885915"
LC_ALL=

 

언어셋팅이 되어있는 파일 확인

# cat /etc/sysconfig/i18n 
LANG="en_US.iso885915"
SUPPORTED="en_US.iso885915:en_US:en"
SYSFONT="lat0-sun16"
SYSFONTACM="iso15"

 

UTF-8로 설정

# vi /etc/sysconfig/i18n

LANG="ko_KR.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko"

 

EUC-KR 설정

# vi /etc/sysconfig/i18n

LANG="ko_KR.eucKR"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.eucKR:ko_KR:ko:ko_KR.UTF-8"

 

관리자가 아닌 일반 사용자에게도 적용(필수가 아닙니다)

UTF-8 적용

# vi /etc/profile
...
가장 아래줄에 추가
export LC_ALL="ko_KR.UTF-8"
export LANG="ko_KR.UTF-8"

 

EUC-KR 적용

# vi /etc/profile
...
가장 아래줄에 추가
export LC_ALL="ko_KR.eucKR"
export LANG="ko_KR.eucKR"

 

적용

# source /etc/sysconfig/i18n

# source /etc/profile(일반 사용자 변경 적용)

 

예제

한글적용 전
# cat temp.sh
#!/bin/bash

printf "한글테스트\n"

# sh temp.sh
?ㅻ쭏 媛?????湲곕쾿]

한글적용 후
# sh temp.sh 
한글테스트

 

한글인코딩 종류는 크게는 euc-kr, utf-8 두 종류로 나뉘게 됩니다. 두가지를 적어놓은 이유는 상황이나 서버환경에 셋팅이 다르기 때문에 맞게 사용하시면 되고, 중요한 것은 가급적이면 언어셋팅은 통일을 시켜야 한다는게 중요합니다. 두가지의 설명과 비교해놓은 좋은글이 있습니다. 아래 링크로 첨부하겠습니다. 시간되시면 한번 읽어보시기를 추천 드립니다.

 

추천자료

한글인코딩 종류와 문제점 및 비교 "https://studyforus.tistory.com/167"