최근 수정 시각 : 2024-12-26 17:19:18

JIS 문자 집합

파일:漢.svg파일:漢_White.svg 한자
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px); word-break:keep-all"
{{{#!folding [ 펼치기 · 닫기 ]
{{{#!wiki style="margin:-5px -1px -11px"
<colbgcolor=#eee,#333> 서체와 자형 갑골문 · 금문 · 전서 · 예서 · 해서 · 행서 · 초서 · 정자(표준자형) · 간체자(간체자 논쟁) · 신자체(목록 · 변화 규칙) · 본자 · 속자 · 약자 · 이체자 · 한중일 한자
성질과 분류 획(필순) · 구조 · 파자 · 육서 · 상형자 목록 · 훈음 · 부수 · 부수(중국) · 부수(설문해자)
표준화 상용한자 (한문 교육용 기초 한자 · 통용규범한자표 · 당용한자 · 일본의 상용한자 (목록) · 학년별한자배당표) · 한국어문회 한자검정시험 · 어문회 급수 · 대한검정회 한자급수자격시험 · 검정회 급수 · 한자한문지도사시험 · 인명용 한자표 · 광동어 정음 운동
주음·표음화·한자음 반절 · 주음부호 · 병음 (한어병음 · 월어병음) · 한글(동국정운) · 훈독 · 음독 · 속음 · 한국 한자음 · 중국 한자음 (문백이독 · 상고음 · 중고음 · 근고음 · 양안 간 독음) · 일본 한자음 · 베트남 한자음 · 다음자
옥편 자전 · 설문해자 · 강희자전 · 옥편 · 이아 · 운서 · 광운 · 절운 · 집운 · 오음편해 · 한어대사전 · 대한화사전 · 중문대사전 · 이체자자전 · 한한대사전
색인 부수별 · 음별 · 획수별
국가별 사용 한자문화권 · 한문 · 백화문 · 한국의 한자 사용 · 한자어(한국식 한자어 · 중국식 한자어 · 일본식 한자어 · 베트남식 한자어) · 언어간 동형이의 한자어(고유명사) · 언어간 이형동의 한자어 · 우리말 새김
파생 문자 한글 전 한국어 표기 (국자 · 이두 · 향찰 · 구결) · 방언자 · 주음부호 · 가나 (히라가나 · 가타카나 · 헨타이가나 · 만요가나) · 측천문자 · 쯔놈 · 고장자 ·거란 문자 · 여진 문자 · 서하 문자
입력 · 검색 한자/입력기 · 창힐수입법 (목록) · 오필자형수입법 · 대이수입법 · 사각호마검자법 · 재춘법
전산화 KS X 1001 · KS X 1002 · KPS 9566 · GB 2312 · JIS X 0208 · Big5 / 유니코드: 한중일 통합 한자 · BMP(통합 한자 · 통합 한자 확장 A · 호환 한자) · SIP(통합 한자 확장 B~F) · TIP(통합 한자 확장 G) · 한자 모양 설명 문자
기타 고사성어 · 천자문 · 한시 · 어조사 · 음역 · 서예 · 올해의 사자성어 · 올해의 한자 · 국한문혼용체(논쟁) · 국한문병용체 · 한자 교육 (한문(교과) (2022 개정 교육과정/한문과) · 한자 교육 찬반 논쟁) · 중복 한자 · 벽자 · 통자 · 갖은자 · 한자오자 · 미상 한자 · 유령 문자 · 특이한 한자 · 닮은꼴 한자 · 국호 · 주기율표 · 음률 · 한자문화권 고유명사 표기 · 자주 틀리는 한자어 · 훈을 혼동하기 쉬운 한자 · 부수를 혼동하기 쉬운 한자 · 한자를 혼동하기 쉬운 단어 · 발음이 여럿인 한자어 · 한국의 성씨(인구분포 · 지역별) · 후리가나 · 창작 한자 }}}}}}}}}


일본어의 전산화를 위해 일본산업규격(JIS)으로 지정된 문자 집합 표준에는 JIS X 0201, JIS X 0208, JIS X 0212, JIS X 0213의 4종류가 존재한다.

1. JIS X 02012. JIS X 0208
2.1. Shift_JIS2.2. ISO-2022-JP
3. JIS X 02124. JIS X 02135. JIS 수준

1. JIS X 0201

JIS X 0201(구 명칭은 JIS C 6220[1]), "7비트 및 8비트의 정보교환용 부호화 문자 집합(일본어: 7ビット及び8ビットの情報交換用符号化文字集合)"은 1969년 처음 등장한 일본어 문자 집합이다.

대충 보면 ASCII의 남는 공간에 가타카나를 채워넣었을 뿐인 원시적인 구조를 한 것 같지만, 자세히 보면 조금씩 다른 점이 있다.
  • 글자당 7비트를 사용하면 27=128이므로 총 128개의 문자를 구분할 수 있는데, 이러면 가나를 넣을 공간이 부족하다. 이를 해결 하기 위해 ASCII와 거의 같은 7비트 문자집합은 "라틴 문자용 도형 문자 집합"과 "가나용 도형 문자 집합"으로 나누어져 있고, 이 두 집합을 구분하기 위해 ASCII 제어문자 SI와 SO를 사용하였다.
  • 글자당 8비트를 사용하면 28=256이므로 ASCII 문자를 다 집어넣고도 가타카나와 히라가나 중 하나를 채워넣기에 충분한 공간이 남았다. 그렇기 때문에 ASCII 뒤에 적당히 가타카나들을 밀어넣었다.

로마자 부분(라틴 문자용 도형 문자 집합)은 ASCII와 거의 같지만, 다음과 같은 부분이 다르다.
  • ASCII의 물결표(~) 자리에 대신 오버라인(‾) 기호가 할당됨
  • ASCII의 역슬래시(\\) 자리에 대신 엔화 (¥) 기호가 할당됨

한편 한국에서는 JIS X 0201을 벤치마킹하여 KS C 5601-1974를 만들었다. KS코드에서 JIS코드의 직접적인 영향을 알 수 있는 부분이 바로 한글 폰트에서 역슬래시(\\)의 표기인데, JIS X 0201에서 역슬래시 자리에 대신 엔화 기호(¥)를 넣었던 것을 벤치마킹하여 대신 원화 기호(₩)를 넣었던 것이 지금까지 내려온 것이다.

또한 JIS X 0201을 구현하였던 당대의 시스템들은 보통 JIS X 0201의 가나를 ASCII 로마자처럼 반각(半角, half-width)으로 표기하였는데, 이 때문에 반각 가타카나라는 개념이 처음 탄생하였다.

2. JIS X 0208

JIS X 0208(구 명칭은 JIS C 6226), "7비트 및 8비트의 2바이트 정보 교환용 부호화 한자 집합(일본어: 7ビット及び8ビットの2バイト情報交換用符号化漢字集合)"은 1978년에 처음 등장한 일본어 문자 집합이다. JIS X 0208은 유니코드 보편화 이전까지 가장 보편적으로 사용되었던 일본어용 문자 집합이며, 유니코드 전환이 이루어지고 있는 현재까지도 여전히 일본 내에서 많은 영역에서 사용되고 있다.

JIS X 0201은 로마자가 아닌 다른 문자를 컴퓨터상에서 구현하고자 한 거의 최초의 시도였으나, 가나, 그것도 가타카나만을 포함하고 있다는 단점이 있었다. 일본어를 컴퓨터상에서 보다 자유롭게 구현하기 위해서는 가타카나뿐만이 아니라 히라가나, 그리고 한자 지원이 꼭 필요했다. 이를 위해 도입된 것이 JIS X 0208이다.

굳이 이름에서 그냥 "2바이트"라고 하지 않고 "7비트 및 8비트의 2바이트"라고 쓴 이유는, 아직 1바이트=8비트라는 공식이 확립되지 않았던 시대였기 때문이다. 이 때문에 옛날에는 8비트인 1바이트를 나타내는 단어로 "옥텟(octet)"을 사용하기도 했으며, 지금은 거의 사장된 단어이지만 프로토콜 문서 등에서는 이 표현이 가끔씩 보인다.

JIS X 0208의 각 문자에는 구점(区点) 코드라는 것이 부여되었는데, 문자 집합을 하나의 거대한 표라고 생각하고 표의 각 행마다 구(区) 번호를, 각 열마다 점(点) 번호를 부여한 것이다. JIS X 0208은 1~94구(=행)/점(=열)로 구성되어 총 94행 94열=8836문자를 할당할 수 있으나, 실제 할당된 문자의 수는 더 적다. 굳이 94라는 숫자가 선택된 이유는 ASCII의 표시 가능한 문자 영역이 95개이고, 여기에서 공백 문자 1개를 빼면 94개였기 때문이다. JIS X 0208의 94x94 구조는 이후 한국의 KS X 1001, 중국의 GB 2132 등에서 널리 벤치마킹되었다.

JIS X 0208은 1978년 등장 이후 1983년, 1990년, 1997년, 2012년에 개정되었다.

2.1. Shift_JIS

Shift_JIS아스키 사, 마이크로소프트, 미쓰비시 전기, 디지털 리서치 등의 회사가 개발하였다고 알려진 일본어 인코딩 체계로, JIS X 0208을 사용한 인코딩 중 가장 폭넓게 사용되는 MBCS 인코딩 체계이다. 원래 민간에서 개발한 시스템이지만 JIS X 0201의 1997년 개정판 부속서 1에 수록되어 표준으로 편입되었다. SJIS, SHIFT-JIS 등으로도 부른다.

1비트=8바이트의 1/2바이트 가변 인코딩으로, 기본적으로 JIS X 0201의 남는 있는 공간에 JIS X 0208 테이블을 잘 끼워넣은 것이다. 구체적으로는 JIS X 0201에서 0x00~0x20까지가 제어 문자 부분, 0x21~0x7E가 ASCII 출력 문자 부분, 0x7F가 DEL, 0xA1~0xDF가 반각 가타카나 부분이므로 이것들을 피해서 다음과 같이 배치하였다.
  • 첫 번째 바이트가 0x81~0x9F(129~159) 또는 0xE0~0xEF(224~239)면 2바이트 문자의 첫 번째 바이트로 간주한다.
    • 그렇지 않으면 1바이트=8비트의 JIS X 0201 문자로 간주한다.
  • 두 번째 바이트는 0x40~0x7E(64~126) 또는 0x80~0xFC(128~252) 범위가 올 수 있다.

Shift_JIS는 ISO-2022-JP와는 달리 이스케이프 시퀀스를 통한 전환 등의 번잡한 과정이 필요하지 않았으므로 통신 이외의 분야에서는 거진 이것이 사용되었다고 해도 될 정도로 널리 사용되었다.

하지만 문제점도 있었다.
  • 0x5C 문제. 마이크로소프트의 운영체제에서는 디렉토리 구분자로 역슬래시(\\, ASCII: 0x5C)를 사용하는데, Shift_JIS에서는 두 번째 바이트에 0x5C가 올 수 있다. 이 때문에 Shift_JIS를 지원하지 않는 프로그램에서는 Shift_JIS 인코딩으로 저장된 파일 경로를 역슬래시로 잘못 인식해서 오류가 나는 경우가 많았다.
    • 마이크로소프트는 여기에서 교훈을 얻어 한글 통합 완성형을 만들 때에는 0x5C를 피해서 문자를 배치했다.
  • 파편화된 인코딩. 애초에 민간에서 개발된 인코딩 시스템이어서 표준이 상당히 느슨했고, 각 컴퓨터 제조사별로 빈 공간에 특수문자나 한자를 추가로 집어넣었기 때문에 문제가 됐다. 이런 특수문자와 한자들을 기종 의존 문자(機種依存文字)라고 했다.
    • 일본IBMDOS/VNECPC98의 확장 문자를 모두 수록한 마이크로소프트CP932(Windows-31J)가 Shift_JIS 구현의 표준으로 자리잡으면서 이 문제는 대충 해결되었다. Windows-31J에 탑재된 기종의존문자들은 이후 유니코드에도 할당되었다.
      • Windows 95의 대성공으로 일본 독자 컴퓨터 플랫폼들이 모두 쓸려나가면서 Windows-31J 이외의 기종의존문자들은 거의 소멸하였으나, 딱 한 가지 살아남은 것이 Apple Mac OS의 일본어판인 칸지토크(漢字Talk)에서 사용되던 MacJapanese다. MacJapanese 특수문자 중에는 유니코드에도 할당되지 않은 문자가 몇 가지 있으며, 운영체제가 전면 유니코드화된 Mac OS X(현재의 macOS)부터는 레거시 MacJapanese 특수문자를 PUA 문자와 유니코드 문자의 조합으로 표현한다.

2.2. ISO-2022-JP

ISO/IEC 2022를 (부분적으로) 따른 인코딩 규격이다. 1바이트=7비트 전용규격으로, 바이트당 1비트를 아낄 수 있었으므로 초창기의 인터넷 통신, 특히 메일 송수신에서 매우 많이 사용되었다. JIS코드(JISコード)라고 하면 보통 이것을 가리킨다.

ISO-2022-JP는 이스케이프 시퀀스를 이용해 ASCII, JIS X 0102 사이를 전환하는 구조이다. 예를 들어 "ナムWiki"는 다음과 같이 표현된다.
해설 (JIS X 0208 전환) (ASCII로 전환) W i k i
16진수 표현 1B 24 42 25 4A 25 60 1B 28 42 57 69 6B 69
ASCII로 표현 ESC $ B % J % ` ESC ( B W i k i

3. JIS X 0212

JIS X 0212, "정보 교환용 한자부호-보조한자(일본어: 情報交換用漢字符号-補助漢字)는 1990년에 제정된 일본어 문자 집합이다. JIS X 0208에 포함되어 있지 않은 한자 5801자를 추가로 수록하고 있다.

하지만 이 문자집합은 설계상 Shift_JIS로 표현할 수 없기 때문에 널리 사용되지 않았다.

4. JIS X 0213

JIS X 0213, "7비트 및 8비트의 2바이트 정보 교환용 부호화 확장 한자 집합(일본어: 7ビット及び8ビットの2バイト情報交換用符号化拡張漢字集合)은 2000년 처음 등장한 일본어 문자 집합이다. JIS X 0208과 별개의 문자 집합인 JIS X 0212와는 달리, JIS X 0213은 JIS X 0208:1997의 확장판에 해당한다.

2004년, 2012년 개정되었으며, 이 중 가장 많이 사용되는 것은 2004년판(JIS X 0203:2004, 통칭 JIS2004)이다.

JIS X 0213에서는 기존 94x94의 2차원 구점(区点) 구조를 3차원으로 확장하는 2개의 면(面)이 등장하였다. 따라서 최대 94x94x2=17672자가 정의될 수 있으며, 이 중 11233자가 할당되었다.

JIS X 0213을 Shift_JIS 방식으로 지원하는 인코딩 시스템인 Shift_JIS-2004가 존재하지만, 대부분의 시스템에서 이것을 지원하지 않는다. 어차피 JIS X 0213에서 추가된 문자들은 전부 유니코드에 추가되었기 때문에, 대부분의 플랫폼에서는 유니코드로 JIS X 0213 문자를 처리한다.

5. JIS 수준

94x94 구조에서 표현 가능한 글자의 수는 8836자인데, 현재까지 등장한 모든 한자의 수는 8836자를 아득히 넘어서므로, 자주 사용하는 한자만 추려서 문자 집합에 수록할 필요가 있었다. 이 때문에 JIS C 6226(현 JIS X 0208) 제정 당시 만들어진 개념이 JIS 수준이다. 간단히 말하자면 일본에서 자주 사용되는 한자와 자주 사용되지 않는 한자를 "수준"으로 구분하자는 것이었다.

이 작업은 대개 수작업으로 이루어졌고, 검토를 수 차례 거쳤음에도 몇몇 오류가 발생할 수밖에 없었다. 유령문자가 그 예시이다.

JIS X 0208 수록 범위
  • 제1수준은 "당용한자자체표", "당용한자보정안", "인명용한자표"를 토대로 하고, 추가로 일본의 모든 지역(시구정촌)의 이름을 커버할 수 있는 범위로 설정되었다. 총 2965자.
  • 제2수준은 정보처리학회 한자코드위원회의 "표준 코드용 한자표(시안)", 행정관리청의 "행정정보처리용 기본한자", 일본생명보험의 가입자명을 모은 "일본생명 수용인명 한자", 국토지리협회의 "국토행정구획 총람 사용 한자" 등을 기초로 하여, 제1수준에 포함되지 않은 한자를 수록하였다. 78JIS에서 3384자, 83JIS에서 3388자, 90JIS에서 총 3390자로 늘어났다.


[1] 당시에는 JIS에 정보기술(X) 관련 분류가 없었기 때문에 이것이 전기전자(C)로 분류되었다. 이것은 한국 KS코드 역시 마찬가지였다