메뉴 건너뛰기

Dev tips

HTML / CSS [HTML] euc-kr and CP949

taknim 2009.08.13 03:17 조회 수 : 11681 추천:2870

http://dialup.egloos.com/1095875 소프트웨어 개발시 인코딩, 코드페이지...들에 대해서 고민을 때가 많은데, 이에 대해서 정확한
지식을 가지고 있는 개발자도 그렇게 많지는 않다.


"어? 웹페이지에서 왜 한글이 깨지지?"
"인코딩 방법 바꿔봐~"
"뭘로?"
"음...euc-kr ksc-5601...utf-8... 어, 그거 utf-8이면 파일이 utf-8로 저장이 되어 있어?..."


"terminal에서 한글이 입력도 안되고 깨어지네... 왜 이렇지?"
".bashrc에 charset을 세팅해봐..."
"뭘로?"
"ko_KR.eucKR..."


나도 이런 대화들을 많이 했던것 같다. 새로운 문제들 때문에 한 것이 아니라 제대로 모르고 그냥
해결방법만 어떻게 찾아서 '적용해보니 되네...'로 지나가 버렸던 것이 문제이다. 얼마전 문자의
인코딩 부분에 대해서 공부를 해 보려고 여러 자료들을 찾아보니... 이거 명확하게 이해를 하려면
오래된(?) history까지 알아야 되는 쉽지 않은 일이었다. 그래서 잠시 잊고 있었는데...
서비스하고 있는 웹사이트에서 특정 한글이 깨어지는 일이 있었다. 그래서 보니 해당 프로세스에서
HttpUtility.UrlEncode와 HttpUtility.UrlDecode를 사용하는데 encoding을 euc-kr로 처리하고 있었다.
문제가 된 글자는 "흿"... *근데 "샾"도 안된단다...ㅋㅋ 설마 했는데 "샾"도 안된다. "포스코 더 샾" ㅎ~
자주 쓰는 글자는 아니지만 저게 왜 깨어지지?라는 생각이 들었는데, 여러가지 이유로 euc-kr은
상당히 많은 조합가능한 한글들을 지원하지 않는다. 


*한글 인코딩에 대한 KLDP 토론 thread 참고
http://kldp.org/node/98856


그럼 euc-kr에서 사용할 수 없는 한글은??? 아래에서 euc-kr에 정의된 한글 전체 목록을 볼 수 있다.
http://zbxe.bluegate.kr/42


*윈도우에서 한글 구현을 위해 사용하는 코드페이지인 cp949(확장 한글 완성형)는 기존 euc-kr을 그대로
 가져오고, 거기에 정의되지 않은 한글들에 대해서 추가 한 것이다.
 확장 한글 완성형(cp949)에 대한 전체 code table은 찾을 수가 없어 MS에서 제공되는 cp949와
 unicode와의 mapping table 자료를 base data로 사용하여 출력 포멧을 변경해 보았다.
 -MS에서 제공되는 cp949와 unicode의 매핑 테이블
  http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT
 -첨부파일 레이아웃 : cp949 code : 대응한글   해당코드에 대한 MS의 영문 표기 (총 17,048건 ascii코드 제외)

번호 제목 글쓴이 날짜 조회 수
334 새 창에 form을 post로 전송하기 taknim 2009.09.16 10522
333 PHP 에서 MySQL 바인딩 구현 taknim 2009.09.12 9150
332 file_get_content 사용하기 GET, POST taknim 2009.08.26 10659
331 [mysql] mysqlbinlog 실행시 캐릭터셋(utf8) 오류 taknim 2009.08.25 15773
330 커피 만드는 방법 taknim 2009.08.17 6538
329 [mysql] 동적 쿼리 생성시 변수를 대입하거나 값을 받아오기 taknim 2009.08.17 17210
328 [MSSQL] sp_who2 를 대신할 sql 코드 file taknim 2009.08.13 10950
» [HTML] euc-kr and CP949 file taknim 2009.08.13 11681
326 [PHP] 소켓 통신할때 패킷이 길어서 받지 못 할 때 해결 방법 taknim 2009.08.08 8646
325 vsftp 계정별로 폴더 제한, 권한 옵션 설명 taknim 2009.08.01 10833
324 ssh 특정 계정 제한하기 taknim 2009.08.01 11824
323 [MSSQL] 변수를 TABLE로 선언 후 데이터 입력 taknim 2009.07.30 11712
322 WOL 관련한 사이트 (매직패킷 전송) file taknim 2009.07.22 11768
321 [ORACLE] Flashback (과거시점에서 질의실행) taknim 2009.07.06 10158
320 [Oracle] DBNEWID Utility - DBNAME,DBID변경하기 taknim 2009.07.06 15576
319 리눅스 콘솔 단축키 taknim 2009.07.06 21956
318 bash 팁1 - 단축키, 환경변수 taknim 2009.07.06 12225
317 명령 프롬프트 창이 보이지 않는 배치 파일 실행하기 taknim 2009.07.04 12863
316 [Oracle] INSERT … ON DUPLICATE KEY UPDATE taknim 2009.06.25 13908
315 알아두면 유용한 윈도우의 환경 변수들 taknim 2009.06.25 8725