KS X 1001

KS X 1001은 한국 산업 규격으로 지정된 한국어 문자 집합으로서, 정식 규격명은 ‘정보 교환용 부호계 (한글 및 한자)’이며, 옛 이름인 KS C 5601로도 알려져 있다. 1974년에 처음으로 제정되었고, 2004년에 개정된 KS X 1001:2004가 최신 규격이다.

이 규격은 2바이트 부호계로서, x2121 - x7E7E 영역에서 8,836문자의 표현을 규정하는데, 문자는 제어 문자와 도형 문자로 분류하며, 도형 문자는 특수 문자, 괘선 조각, 숫자, 한글 낱자, 한글 글자 마디, 한자, 기본 로마 문자, 확장 로마 문자, 그리스 문자, 가나 문자, 키릴 문자로 구성되어 있다. 한글 부분은 기본적으로 2바이트 완성형 코드이지만, 부속서 3에서 2바이트 조합형 코드도 보조 부호계로서 규정되어 있다.

KS X 1001은 유니코드를 제외하고 대한민국에서 사용되는 거의 유일한 문자 집합이다. KS X 1001 기반의 문자 인코딩으로는 EUC-KR(완성형)과 ISO-2022-KR(과거 인터넷 메일에서 쓰던 문자 인코딩)이 있다. MS 윈도우에서 사용하는 CP949은 EUC-KR의 확장으로 2바이트로 표현할 수 없는 한글 글자 마디 8,822자를 추가한 것이다.

 구성 
KS X 1001은 전형적인 94×94 문자 집합이며, 각 행들은 다음과 같이 구성되어 있다.
 0x21 ~ 0x2C: 특수 문자(문장 부호, 그림 문자 등), 한글 낱자, 괘선 조각, 외국 문자(히라가나, 가타카나, 그리스 문자, 키릴 문자 등)
 0x30 ~ 0x48: 한글 글자 마디 영역. 자주 쓰이는 2350자만 가나다 순서대로 배열했다. 하지만 이것 때문에 이 영역에서 벗어난 글자를 정확히 인식하지 못하는 문제가 생겼다.`믜`字 순한글 이름 곤욕
 0x49: 사용자 정의 영역 A
 0x4A ~ 0x7D: 한자 영역. 4888자를 한글 독음 순서대로 배열했으며, 독음이 여러 개인 한자는 독음에 따라 중복되어 있다.
 0x7E: 사용자 정의 영역 B

특수 문자 영역은 개정판마다 계속 추가되고 있다. KS X 1001:1998에서는 ®('등록 상표' 줄임표), €(유로 기호)가, KS X 1001:2002에서는 ㉾('우편 번호' 줄임표, U+327E)가 추가되었다.

 한글 채움 문자 
이 규격에는 완성형 한글 코드인 기본 부호계에 포함되지 않은 한글에 대해서 글자 마디마다 맨 앞에 '채움' 문자를 덧붙여 교환하는 방식이 규정되어 있다. 즉, 한글 채움 문자(24-54, EUC-KR에서는 A4 D4)를 사용해서 "(채움) 초성 중성 종성"과 같이 한글 영역에 들어 있지 않은 한글을 표시하는 것은 가능하다. 예를 들어 '(채움) ㅆ ㅠ (채움)'은 KS X 1001에서 나타낼 수 없는 '쓔'라는 글자를 나타낸다. 이러한 확장 방법은 2004년 개정에서도 유지되어 있다.

 부속서 
이 규격의 부속서 3에서는 2바이트 조합형을 보조 부호계로 규정하고 있는데, 1992년 개정부터 기존 상용 조합형을 반영하여 표준화하였다. 아울러 부속서 4에서는 7비트 한글 낱자 부호계를 포함하여 2바이트 부호계가 적용되지 않는 특수 장비 등에 대한 한글 코드를 규정하고 있다.

 완성형 한글 2350자 
초성+중성+종성 완성자 '뢨', '썅', '쏀', '쓩', '쭁'은 포함되어 있으나, 이 글자들에서 종성을 뺀 '뢔', '쌰', '쎼', '쓔', '쬬'는 포함되어 있지 않다. 이는 입력 시에 문제를 일으킬 수 있다.

0x0123456789ABCDEFB0A 가각간갇갈갉갊감갑값갓갔강갖갗B0B같갚갛개객갠갤갬갭갯갰갱갸갹갼걀B0C걋걍걔걘걜거걱건걷걸걺검겁것겄겅B0D겆겉겊겋게겐겔겜겝겟겠겡겨격겪견B0E겯결겸겹겻겼경곁계곈곌곕곗고곡곤B0F곧골곪곬곯곰곱곳공곶과곽관괄괆B1A 괌괍괏광괘괜괠괩괬괭괴괵괸괼굄B1B굅굇굉교굔굘굡굣구국군굳굴굵굶굻B1C굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄B1D귈귐귑귓규균귤그극근귿글긁금급긋B1E긍긔기긱긴긷길긺김깁깃깅깆깊까깍B1F깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸B2A 깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏B2B껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬B2C꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤B2D꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉B2E꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐B2F뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙B3A 끝끼끽낀낄낌낍낏낑나낙낚난낟날B3B낡낢남납낫났낭낮낯낱낳내낵낸낼냄B3C냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒B3D넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹B3E녀녁년녈념녑녔녕녘녜녠노녹논놀놂B3F놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝B4A 뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕B4B눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉B4C느늑는늘늙늚늠늡늣능늦늪늬늰늴니B4D닉닌닐닒님닙닛닝닢다닥닦단닫달닭B4E닮닯닳담답닷닸당닺닻닿대댁댄댈댐B4F댑댓댔댕댜더덕덖던덛덜덞덟덤덥B5A 덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐B5B뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동B5C돛돝돠돤돨돼됐되된될됨됩됫됴두둑B5D둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹B5E듀듄듈듐듕드득든듣들듦듬듭듯등듸B5F디딕딘딛딜딤딥딧딨딩딪따딱딴딸B6A 땀땁땃땄땅땋때땍땐땔땜땝땟땠땡B6B떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄B6C뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤B6D뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨B6E뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰B6F띱띳띵라락란랄람랍랏랐랑랒랖랗B7A 래랙랜랠램랩랫랬랭랴략랸럇량러B7B럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛B7C렝려력련렬렴렵렷렸령례롄롑롓로록B7D론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃B7E룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄B7F뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩B8A 륫륭르륵른 를름릅릇릉릊릍릎리릭B8B린릴림립릿링마막만많맏말맑맒맘맙B8C맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀B8D먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕B8E멘멜멤멥멧멨멩며멱면멸몃몄명몇몌B8F모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼B9A 묀묄묍묏묑묘묜묠묩묫무묵묶문묻B9B물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈B9C뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿B9D밀밂밈밉밋밌밍및밑바박밖밗반받발B9E밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄B9F뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗BAA 벙벚베벡벤벧벨벰벱벳벴벵벼벽변BAB별볍볏볐병볕볘볜보복볶본볼봄봅봇BAC봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북BAD분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔BAE뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝BAF븟비빅빈빌빎빔빕빗빙빚빛빠빡빤BBA 빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏BBB뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁BBC뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰BBD뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐BBE삑삔삘삠삡삣삥사삭삯산삳살삵삶삼BBF삽삿샀상샅새색샌샐샘샙샛샜생샤BCA 샥샨샬샴샵샷샹섀섄섈섐섕서석섞BCB섟선섣설섦섧섬섭섯섰성섶세섹센셀BCC셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴BCD셸솅소속솎손솔솖솜솝솟송솥솨솩솬BCE솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽BCF숀숄숌숍숏숑수숙순숟술숨숩숫숭BDA 숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴BDB쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴BDC습슷승시식신싣실싫심십싯싱싶싸싹BDD싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩BDE썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙BDF쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰BEA 쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸BEB쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩BEC씬씰씸씹씻씽아악안앉않알앍앎앓암BED압앗았앙앝앞애액앤앨앰앱앳앴앵야BEE약얀얄얇얌얍얏양얕얗얘얜얠얩어억BEF언얹얻얼얽얾엄업없엇었엉엊엌엎BFA 에엑엔엘엠엡엣엥여역엮연열엶엷BFB염엽엾엿였영옅옆옇예옌옐옘옙옛옜BFC오옥온올옭옮옰옳옴옵옷옹옻와왁완BFD왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀BFE욈욉욋욍요욕욘욜욤욥욧용우욱운울BFF욹욺움웁웃웅워웍원월웜웝웠웡웨C0A 웩웬웰웸웹웽위윅윈윌윔윕윗윙유C0B육윤율윰윱윳융윷으윽은을읊음읍읏C0C응읒읓읔읕읖읗의읜읠읨읫이익인일C0D읽읾잃임입잇있잉잊잎자작잔잖잗잘C0E잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁C0F쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊C1A 점접젓정젖제젝젠젤젬젭젯젱져젼C1B졀졈졉졌졍졔조족존졸졺좀좁좃종좆C1C좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕C1D죗죙죠죡죤죵주죽준줄줅줆줌줍줏중C1E줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉C1F즌즐즘즙즛증지직진짇질짊짐집짓C2A 징짖짙짚짜짝짠짢짤짧짬짭짯짰짱C2B째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔C2C쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏C2D쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉C2E쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍C2F찐찔찜찝찡찢찧차착찬찮찰참찹찻C3A 찼창찾채책챈챌챔챕챗챘챙챠챤챦C3B챨챰챵처척천철첨첩첫첬청체첵첸첼C3C쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙C3D촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추C3E축춘출춤춥춧충춰췄췌췐취췬췰췸췹C3F췻췽츄츈츌츔츙츠측츤츨츰츱츳층C4A 치칙친칟칠칡침칩칫칭카칵칸칼캄C4B캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커C4C컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓C4D켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥C4E콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤C4F쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼C5A 큄큅큇큉큐큔큘큠크큭큰클큼큽킁C5B키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓C5C탔탕태택탠탤탬탭탯탰탱탸턍터턱턴C5D털턺텀텁텃텄텅테텍텐텔템텝텟텡텨C5E텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘C5F퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜C6A 퉤튀튁튄튈튐튑튕튜튠튤튬튱트특C6B튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸C6C팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥C6D패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌C6E펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄C6F폅폈평폐폘폡폣포폭폰폴폼폽폿퐁C7A 퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂C7B품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻C7C퓽프픈플픔픕픗피픽핀필핌핍핏핑하C7D학한할핥함합핫항해핵핸핼햄햅햇했C7E행햐향허헉헌헐헒험헙헛헝헤헥헨헬C7F헴헵헷헹혀혁현혈혐협혓혔형혜혠C8A 혤혭호혹혼홀홅홈홉홋홍홑화확환C8B활홧황홰홱홴횃횅회획횐횔횝횟횡효C8C횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰C8D훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵C8E휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥C8F흩희흰흴흼흽힁히힉힌힐힘힙힛힝

자모별 통계
 초성
자모개수ㄱ171ㄲ120ㄴ141ㄷ128ㄸ86ㄹ127ㅁ129ㅂ129ㅃ73ㅅ163ㅆ86ㅇ208ㅈ135ㅉ82ㅊ112ㅋ107ㅌ106ㅍ105ㅎ142합계2350 중성
자모개수ㅏ242ㅐ172ㅑ77ㅒ15ㅓ212ㅔ140ㅕ131ㅖ44ㅗ184ㅘ81ㅙ42ㅚ101ㅛ65ㅜ177ㅝ56ㅞ41ㅟ105ㅠ84ㅡ166ㅢ30ㅣ185합계2350 종성
자모개수(없음)349ㄱ204ㄲ13ㄳ6ㄴ277ㄵ2ㄶ10ㄷ36ㄹ262ㄺ21ㄻ50ㄼ9ㄽ3ㄾ3ㄿ1ㅀ11ㅁ222ㅂ209ㅄ3ㅅ200ㅆ106ㅇ241ㅈ27ㅊ15ㅋ3ㅌ27ㅍ20ㅎ20합계2350

 단점 
KS X 1001에 모든 현대 한글을 표현할 수 있는 방법이 존재하는데도 모질라 파이어폭스 등을 제외한 대부분의 프로그램들이 구현하지 않고 있다. 따라서 KS X 1001은 사실상 2350자의 한글만 지원하기 때문에 모든 현대 한글을 제대로 표현할 수 없다는 비판이 제기되었다. 또한 2350자 바깥의 한글을 처리하는 방법이 프로그램마다 여러 가지로 나뉘면서 서로 다른 프로그램 사이에서 인코딩의 호환성이 보장되지 않는 문제가 생기기도 했다. 또한, 필요한 특수 문자는 배제되고 자판으로 손수 입력 가능한 특수 문자가 너무 많이 포함되었다는 비판도 존재한다.현행 KS 완성형 한글 코드의 문제점, 국립국어연구원 국어생활 1989년 가을호

그 외에도 독음이 여러 개인 한자가 독음에 따라 중복되어 있기 때문에 나타나는 처리상의 문제도 있는데, 유니코드에 이런 특성이 고려되어 모든 중복된 한자가 유니코드 호환성 영역에 수록되기도 했다.

 같이 보기 
 KS X 1002 - KS X 1001의 보조 문자 집합
 KS X 1003 - KS X 1001과 함께 사용되는 로마 문자 집합
 KS X 1001의 특수 문자

 각주 

 참고 문헌 
 〈정보 교환용 부호계(한글 및 한자)〉, 《한국산업규격》. 한국표준협회, 2005.

 외부 링크 
  KS X 1001:1987의 문자표

분류:한국어 문자 인코딩
1001