본문 바로가기

공부/컴퓨터

[문자인코딩] CP949 혹은 MS949 - 대략 정리

반응형
내용에 대해서 책임지지 않습니다. ㅋㅋ


CP949는 MS-Windows에서 정한 한글을 나타내는 문자set 이다.
index가 주루룩 나열되어 있고, 거기다가 한글이 하나씩 들어 있는것이다.


원래 글자를 나타낼때에는 index는 총 2byte로 구성되어져 있어도 문제가 없을것 같았나 보다.
하지만 2byte만을 가지고는 세계의 모든 글자를 표시 할 수 없기 때문에
CP( CodePage ) 라는 구분을 해 주어, CP에 따라서 다른 글자가 보이도록 한다는거다.


CodePage는 국가 마다 다르다.
하나의 index가 있을때 CodePage를 바꾸어 버리면 서로 다른 모양의 글자가 나온다는것이다.

9A98이라는 index가 있을때
이것을 CP49 (Korean) 로 인식하고 보면 "슆"이 나온다. 하지만
이것을 CP932 (Japanese Shift-JIS) 로 인식하고 보면 "口"가 나온다.


CP949에 있는 글자들은 Unicode 처럼 조합할 수 있도록 제공해 주지 않는다.
즉, 하나의 index는 완전한 하나의 글자를 이루게 되어 있다.
( 반면 유니코드는 초성 "ㄱ", 중성 "ㅏ" 처럼 글자를 조합해서 나타낼 수 있게도 제공해 준다. )


CP949는 "EUC-KR http://en.wikipedia.org/wiki/EUC-KR#EUC-KR "의 확장판이고
EUC-KR은 "완성형 한글(KSC5601) http://www.itscj.ipsj.or.jp/ISO-IR/149.pdf + 기타등등문자 "의 확장판이다.
"완성형한글(KSC5601)" 역시 index가 정해져 있고 완전한 하나의 글자가 배치되어 있지만,
"똠" 과 같이 표현하지 못하는 문자들이 매우 많았다.
그래서 CP949는 "완성형한글(KSC5601)"에 더 많은 글자를 추가하게 된 것이다.



CP949에서는 Unicode에서 제공해주는 글자보다 덜 제공해 주므로,
CP949에서 나타나지는 글자들은 모두 Unicode로 변환이 가능하나,
반대로 Unicode에서 제공되는 글자를 CP949에서는 표현하지 못할 수 있다.



여담.
사실 CodePage라는 것은 IBM에서 먼저 만들었다.
그리고 시간이 지난뒤 MS에서 한글을 표현하기 위해서 CP949를 정했는데,
Java에서는 이를 MS에서 만든것이라서 MS949로 말하게 된다.

반응형