리눅스 쉘 한글 깨짐

1 개요[ | ]

리눅스 쉘 한글 깨짐
pywikipedia 한글 깨짐
  • 리눅스 쉘에서 한글이 깨지는 현상에 대해서는 다음 3가지를 확인하자.
  1. 서버의 언어설정($LANG)
  2. 클라이언트의 인코딩 설정
  3. 클라이언트의 폰트[1]
  • 가능하면 모든 것을 UTF-8로 맞추자. (OS, DB, 클라이언트 등등)

2 문제 상황[ | ]

pywikipedia를 사용하는 도중 UTF-8 한글이 깨져 보인다.

[root@zetawiki ~]# python ~/pywikipedia/redirect.py double
Retrieving special page...
Retrieved 8 redirects from special page.

>>> DB ???대툝 援ъ“ ???? <<<
   Links to: [[DB ?ㅽ?ㅻ쭏 媛???????]].
   Links to: [[DB ?ㅽ?ㅻ쭏 媛???????踰?]].
   Links to: [[DB ?ㅽ?ㅻ쭏 媛?????湲곕쾿]].
- #??寃⑥<湲?[[DB ?ㅽ?ㅻ쭏 媛???????]]
+ #??寃⑥<湲?[[DB ?ㅽ?ㅻ쭏 媛?????湲곕쾿]]

3 서버 언어코드 확인[ | ]

현재 설정 확인
[root@zetawiki ~]# echo $LANG
en_US.UTF-8
UTF-8 지원 확인
[root@zetawiki ~]# locale -a | grep en_US
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8

목록에는 en_US.utf8, $LANG의 값은 en_US.UTF-8로 서로 다르지만 UTF-8 지원은 되며 UTF-8 한글을 정상적으로 출력할 수 있다. 즉 서버에서는 정상적으로 보내주는 것이다. 그런데도 이상하게 출력된다면 클라이언트에서 받을 때 문제가 있기 때문이다.

4 클라이언트 설정 변경[ | ]

클라이언트(Xshell)의 터미널 인코딩이 "기본"으로 되어 있었다. 윈도우 기본 인코딩인 코드페이지 949(CP949)로 되어 있다는 뜻이다. 이것을 UTF-8로 바꾸자.

  • [파일] --- [등록정보] --- [터미널] --- 인코딩: [유니코드 UTF-8]

변경 후 다시 해보니 한글이 정상적으로 나온다.

[root@zetawiki ~]# python ~/pywikipedia/redirect.py double
Retrieving special page...
Retrieved 8 redirects from special page.

>>> DB 테이블 구조 표현 <<<
   Links to: [[DB 스키마 간단 표현]].
   Links to: [[DB 스키마 간단 표현법]].
   Links to: [[DB 스키마 간단 표기법]].
- #넘겨주기 [[DB 스키마 간단 표현]]
+ #넘겨주기 [[DB 스키마 간단 표기법]]

Do you want to accept the changes? ([y]es, [N]o, [a]ll, [q]uit)

5 같이 보기[ | ]

6 주석[ | ]

  1. 예를 들어 Courier는 영문 전용 폰트이므로 한글이 제대로 보이지 않는다.
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}