한글 문자 집합?

제가 우분투에서 한글 문자집합이 ko_KR.UTF-8로 되어 있습니다. 이것을 Korean_Korea.949로 바꾸려고 하는데, 지원하지 않는다고 하네요. 이거 어떤식으로 설정해야 하는지 좀 알고 싶습니다.

[quote="mimiqq11":27cbc62t]제가 우분투에서 한글 문자집합이 ko_KR.UTF-8로 되어 있습니다. 이것을 Korean_Korea.949로 바꾸려고 하는데, 지원하지 않는다고 하네요. 이거 어떤식으로 설정해야 하는지 좀 알고 싶습니다.[/quote:27cbc62t]

일단 로케일형식은 언어코드_국가코드.문자셋 이런 형식입니다.
여기서 사용되는
언어코드는 ISO 639-1
국가코드는 ISO 3166-1
의 규약을 따르는게 보통입니다.

다음과 같은 내용으로 locale4kr.sh 파일로 저장

[code:27cbc62t]
#!/usr/bin/env bash
F="/var/lib/locales/supported.d/ko"
T="/tmp/locale"
cp $F $T
for s in EUC-KR CP949 "UTF-8"; do
if [ ! -f /usr/share/i18n/charmaps/$s.gz ]; then
echo "Unsupported charset: $s" 1>&2
continue
fi
# remove hyphen
e="${s//-/}"
# to lowercase
e="${e,}"
echo "ko_KR.$e $s" >> $T
done

update /var/lib/locales/supported.d/ko

cat $T|sort|uniq|sudo tee $F
sudo dpkg-reconfigure locales

[/code:27cbc62t]

bash locale4kr.sh
이렇게 하시면 ko_KR.cp949와 ko_KR.euckr 로케일을 만들게 됩니다.

로케일 목록 확인
locale -a

해당 로케일을 사용하는 터미널 열기
LANG=ko_KR.cp949 LC_ALL=ko_KR.cp949 gnome-ternimal&

** 주의 사항 **
위의 명령은 로케일을 생성하고, 프로그램에 따라 다른 로케일로 실행하게 합니다만,
시스템로케일을 변경하지는 않습니다.
시스템로케일을 변경하시려면 sudo update-locale ko_KR.cp949
이런식으로 가능하지만, 기존의 utf8로 인코딩된 파일및 디렉토리명을 전부 cp949로 변경해주어야 합니다.
which convmv &>/dev/null || sudo apt-get -y install convmv
sudo convmv -f utf8 -t cp949 /
그러므로, 시스템로케일 변경은 추천하지 않습니다.

참고로 cp949로 설정하시면 대부분의 UI 스트링이 깨집니다. 그냥 UTF-8 인 상태로 내버려두세요. cp949는 오픈소스 플랫폼에서 사실상 버린 인코딩 방식입니다. 대부분의 오픈소스 개발자들 조차도 더이상 cp949를 지원하지 않습니다. UTF-8에서 역방향으로의 변환은 대부분 말리는 분위기이며, 이런 행위는 문자코드 호환성을 해치는 결과를 가져옵니다. 그리고 CP949로 된 맨페이지도 앞으로 UTF-8로 바꿀 예정입니다.

(제가 지역화 담당이라 말씀드리는겁니다. iconv 같은 유틸리티로도 변환이 안되는 한글 문자가 종종 있습니다. 다이아몬드 모양의 기호 안에 물음표가 찍힌 그런 문자가 나오거나 占쏙옙 같은 문자열이 나온다면 인코딩이 미처 되다가 만 상태에서 깨진 것입니다. 해당 문제에 대해 보증을 서지 아니하며 책임 지지도 않습니다.)