차이점

이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.

차이 보기로 연결

shift_jis [2012-04-27 01:44]
lifthrasiir 새로 만듦
shift_jis [2012-09-11 11:40] (현재)
lifthrasiir 오타 수정 (JIS X 6226 -> JIS C 6226)
줄 7: 줄 7:
 ===== 배경 ===== ===== 배경 =====
  
-Shift_JIS의 등장에는 슬픈 전설이 있다. <del>나는 전설 따위는 믿지 않아</del> 본래 [[일본]]은 문자 전산화를 처음 할 때(무려 **1960년대**)만 해도 2바이트 인코딩을 위한 체계가 전혀 마련되어 있지 않았기 때문에 [[가타카나]]만을 1바이트 인코딩으로 넣어 버리게 되는데, 이게 바로 [[JIS X 0201]](당시에는 JIS C 6220)이다.((사실 [[제2차세계대전]] 이전의 공식 문서에서는 가타카나가 현재의 [[히라가나]]의 자리를, 히라가나가 현재의 [[칸지]]의 자리를 차지하고 있었으며, 1980년대까지만 해도 전산화가 필요한 곳(전보 등)에서는 가타카나가 기본으로 쓰였다. 어쩌면 JIS X 0201의 설계자들은 [[GB 2312]] 및 [[GB T 12345]]와 같이 똑같은 매핑에 히라가나와 가타카나만 다른 문자 집합을 구상했을 지도 모른다.)) 그런데 나중에 2바이트 인코딩으로 [[히라가나]], 가타카나 및 [[칸지]]를 모두 담은 [[JIS X 0208]](당시에는 JIS 6226)이 나오는데, 본래의 의도대로라면 JIS X 0208은 JIS X 0201을 "대체"하는 표준이 되었어야 했지만 기존에 작성된 문서가 전혀 호환되지 않는 심각한 문제가 발생하고 만다. 게다가 JIS X 0208은 흔히 볼 수 있는 [[94x94]] 문자 집합임에도 불구하고 JIS X 0201이 이미 GR 영역(0xA0~0xFF)을 일부 사용하고 있어서 간단하게 붙여 넣을 수가 없었다. ([[KS X 1001]]이 [[KS X 1003]]과 말끔하게 결합하여 [[EUC-KR]]이 되는 것과는 대조적이다.)+Shift_JIS의 등장에는 슬픈 전설이 있다. <del>나는 전설 따위는 믿지 않아</del> 본래 [[일본]]은 문자 전산화를 처음 할 때(무려 **1960년대**)만 해도 2바이트 인코딩을 위한 체계가 전혀 마련되어 있지 않았기 때문에 [[가타카나]]만을 1바이트 인코딩으로 넣어 버리게 되는데, 이게 바로 [[JIS X 0201]](당시에는 JIS C 6220)이다.((사실 [[제2차세계대전]] 이전의 공식 문서에서는 가타카나가 현재의 [[히라가나]]의 자리를, 히라가나가 현재의 [[칸지]]의 자리를 차지하고 있었으며, 1980년대까지만 해도 전산화가 필요한 곳(전보 등)에서는 가타카나가 기본으로 쓰였다. 어쩌면 JIS X 0201의 설계자들은 [[GB 2312]] 및 [[GB T 12345]]와 같이 똑같은 매핑에 히라가나와 가타카나만 다른 문자 집합을 구상했을 지도 모른다.)) 그런데 나중에 2바이트 인코딩으로 [[히라가나]], 가타카나 및 [[칸지]]를 모두 담은 [[JIS X 0208]](당시에는 JIS 6226)이 나오는데, 본래의 의도대로라면 JIS X 0208은 JIS X 0201을 "대체"하는 표준이 되었어야 했지만 기존에 작성된 문서가 전혀 호환되지 않는 심각한 문제가 발생하고 만다. 게다가 JIS X 0208은 흔히 볼 수 있는 [[94x94]] 문자 집합임에도 불구하고 JIS X 0201이 이미 GR 영역(0xA0~0xFF)을 일부 사용하고 있어서 간단하게 붙여 넣을 수가 없었다. ([[KS X 1001]]이 [[KS X 1003]]과 말끔하게 결합하여 [[EUC-KR]]이 되는 것과는 대조적이다.)
  
 그래서 JIS X 0201에서 할당되지 않은 65개의 바이트를 첫 바이트로 하고, 둘째 바이트의 범위를 크게 늘려 잡아서 JIS X 0208을 인코딩하는 꼼수를 쓴 것이 바로 Shift_JIS이다. "시프트"라는 이름은 JIS X 0208의 행 번호를 1비트 오른쪽 [[비트시프트|시프트]]하여 첫 바이트를 정한 점에서 유래한다. 행 번호의 맨 아래 1비트는 열 번호에 합쳐서 두번째 바이트에 인코딩하는데, 이 때문에 두번째 바이트는 94×2 = 188개의 문자를 인코딩해야 했다. 이 때문에 GR 영역은 물론이고 CR(0x80~0x9F) 및 GL(0x20~0x7F) 영역 대부분을 함께 써야 했는데, 물론 온갖 문제가 일어나게 된다. 십수년 뒤에 나온 [[Windows-949]]에서도 사실상 같은 접근이 쓰이긴 했지만, Shift_JIS에서 엄청나게 데인 마이크로소프트는 두번째 바이트의 범위를 잘 조정하여 호환성 문제를 상당수 피해 갔다. 그래서 JIS X 0201에서 할당되지 않은 65개의 바이트를 첫 바이트로 하고, 둘째 바이트의 범위를 크게 늘려 잡아서 JIS X 0208을 인코딩하는 꼼수를 쓴 것이 바로 Shift_JIS이다. "시프트"라는 이름은 JIS X 0208의 행 번호를 1비트 오른쪽 [[비트시프트|시프트]]하여 첫 바이트를 정한 점에서 유래한다. 행 번호의 맨 아래 1비트는 열 번호에 합쳐서 두번째 바이트에 인코딩하는데, 이 때문에 두번째 바이트는 94×2 = 188개의 문자를 인코딩해야 했다. 이 때문에 GR 영역은 물론이고 CR(0x80~0x9F) 및 GL(0x20~0x7F) 영역 대부분을 함께 써야 했는데, 물론 온갖 문제가 일어나게 된다. 십수년 뒤에 나온 [[Windows-949]]에서도 사실상 같은 접근이 쓰이긴 했지만, Shift_JIS에서 엄청나게 데인 마이크로소프트는 두번째 바이트의 범위를 잘 조정하여 호환성 문제를 상당수 피해 갔다.

도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2012-09-11 11:40 | 작성자 lifthrasiir