본문으로 이동

ISCII

위키백과, 우리 모두의 백과사전.

인도 정보 교환용 문자 부호(ISCII)는 인도의 다양한 문자 체계를 표현하기 위한 코딩 체계이다. 주요 인도계 문자와 로마자 전자 방식을 부호화한다. 지원하는 문자 체계는 벵골-아삼 문자, 데바나가리, 구자라트, 구르무키, 칸나다, 말라얄람, 오리야, 타밀, 텔루구이다. ISCII는 페르시아어에 기반한 인도의 문자 체계는 부호화하지 않으나, 문자 체계 전환 코드를 통해 카슈미르어, 신드어, 우르두어, 페르시아어, 파슈토어, 아랍어를 지원한다. 페르시아어 기반 문자 체계는 이후 PASCII 인코딩으로 부호화되었다.

ISCII는 특정 정부 기관 외부에서는 널리 사용되지 않았으나, ATR 메커니즘이 없는 변형이 맥 OS, 맥 OS 데바나가리에서 사용되었고[1] 현재는 유니코드에 의해 사실상 도태되었다. 유니코드는 각 인도 문자 체계에 별도의 영역을 할당하며, 각 영역 내에서 ISCII 배치를 대부분 유지하고 있다.[2]: 462 

배경

[편집]

브라흐미 문자에서 파생된 문자 체계는 유사한 구조를 가진다.[2]: 462  그래서 ISCII는 같은 음가를 가진 글자를 같은 코드 포인트에 부호화하여 여러 문자 체계를 겹쳐 놓았다. 예를 들어, ISCII 코드 0xB3 0xDB는 [ki]를 나타낸다. 이는 말라얄람어에서는 കി, 데바나가리에서는 कि, 구르무키에서는 ਕਿ, 타밀어에서는 கி로 표현된다. 문자 체계는 서식 있는 텍스트에서는 마크업을 통해, 일반 텍스트에서는 아래에 설명된 ATR 코드를 통해 선택할 수 있다.

단일 인코딩을 사용하는 한 가지 동기는 한 문자 체계에서 다른 문자 체계로 쉽게 전자할 수 있게 하려는 생각 때문이었다.[2]: 462  그러나 비호환성이 충분히 많아 실용적인 생각은 아니다.

ISCII는 8비트 인코딩이다.[3]: 4  하위 128개 코드 포인트는 일반 ASCII이며, 상위 128개 코드 포인트는 ISCII 전용이다. 문자를 나타내는 코드 포인트 외에도 ISCII는 ATR라는 니모닉 코드를 사용하여, 뒤따르는 바이트가 두 가지 종류의 정보 중 하나를 담고 있음을 나타낸다. 한 세트의 값은 다음 문자 체계 표시자나 줄 끝까지 문자 체계를 변경한다. 다른 세트의 값은 굵게나 이탤릭체와 같은 표시 모드를 선택한다. ISCII는 기본 문자 체계를 나타내는 수단을 제공하지 않는다.

코드 페이지 배치

[편집]

다음 표는 데바나가리 문자를 위한 문자 집합을 보여준다. 아삼어, 벵골어, 구자라트어, 구르무키어, 칸나다어, 말라얄람어, 오리야어, 타밀어, 텔루구어의 코드 세트도 유사하며, 각 데바나가리 형태는 각 문자 체계의 대응하는 형태[2]: 462 로 대체된다. 각 문자는 10진수 코드와 유니코드 대응 문자와 함께 표시된다.

ISCII 데바나가리[3]: 14 
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x NUL SOH STX ETX EOT ENQ ACK BEL  BS   HT   LF   VT   FF   CR   SO   SI  
1x DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN  EM  SUB ESC  FS   GS   RS   US 
2x  SP  ! " # $ % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] ^ _
6x ' a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~ DEL
8x
9x
Ax ँ ं ः अ आ इ ई उ ऊ ऋ ऎ ए ऐ ऍ ऒ
Bx ओ औ ऑ क ख ग घ ङ च छ ज झ ञ ट ठ ड
Cx ढ ण त थ द ध न ऩ प फ ब भ म य य़ र
Dx ऱ ल ळ ऴ व श ष स ह INV ा ि ी ु ू ृ
Ex ॆ े ै ॅ ॊ ो ौ ॉ ् ़ । ATR
Fx EXT ० १ २ ३ ४ ५ ६ ७ ८ ९
  Undefined
  Lead byte

특수 코드 포인트

[편집]
INV 문자—코드 포인트 D9 (217)
INV(보이지 않는 자음) 문자는 결합 요소를 단독으로 표시하기 위한 의사 자음으로 사용된다. 예를 들어, क (ka) + ् (halant) + INV = क्‍ (half ka). 유니코드 대응 문자는 U+200D ZERO WIDTH JOINER (ZWJ)이다. 그러나 아래 virama 항목에서 언급했듯이, ISCII halant 문자는 유니코드의 ZWNJ나 ZWJ에 의해 생성되는 효과를 달성하기 위해 중복되거나 ISCII nukta와 결합될 수 있다. 이러한 이유로 애플은 역방향 변환을 보장하기 위해 ISCII INV 문자를 유니코드 left-to-right mark에 매핑한다.[1]
ATR 문자—코드 포인트 EF (239)
ATR(속성) 문자와 그 뒤의 바이트 코드는 다음 ATR 시퀀스나 줄 끝까지 다른 글꼴 속성(예: 굵게)이나 다른 ISCII 또는 PASCII 언어(예: 벵골어)로 전환하는 데 사용된다. 글꼴 속성은 유니코드의 일부가 아니고 각 문자 체계마다 별도의 코드 포인트 세트가 있으므로, 이에 직접 대응하는 유니코드는 없다.
표시 속성 [3]: 31 
ATR + 바이트니모닉서식 옵션
0x30BLD굵게
0x31ITA이탤릭체
0x32UL밑줄
0x33EXP확장됨
0x34HLT강조
0x35OTL외곽선
0x36SHD그림자
0x37TOP문자 상단부 (LOW와 함께 사용하여 두 배 높이 문자를 생성함)
0x38LOW문자 하단부 (TOP과 함께 사용하여 두 배 높이 문자를 생성함)
0x39DBL전체 행 두 배 너비 및 두 배 높이
ISCII 문자 체계로 전환 [3]: 31 
ATR + 바이트니모닉ISCII 문자 체계
0x40DEF기본 문자 체계 (줄 바꿈 후 돌아갈 문자 체계)
0x41RMN로마자 전자
0x42DEV데바나가리
0x43BNG벵골 문자
0x44TML타밀 문자
0x45TLG텔루구 문자
0x46ASM아삼 문자
0x47ORI오리야 문자
0x48KND칸나다 문자
0x49MLM말라얄람 문자
0x4AGJR구자라트 문자
0x4BPNJ구르무키 문자
PASCII로 전환
ATR + 바이트니모닉PASCII 로케일
0x71ARB아랍 문자
0x72PES페르시아 문자
0x73URD우르두 문자
0x74SND신드 문자
0x75KSM카슈미르 문자
0x76PST파슈토 문자
EXT 문자—코드 포인트 F0 (240)
EXT(베다어 확장) 문자와 그 뒤의 바이트 코드는 베다어 악센트를 나타낸다. 베다어 악센트는 별도의 코드 포인트에 할당되므로, 이에 직접 대응하는 유니코드는 없다.
Halant 문자 ्—코드 포인트 E8 (232)
halant 문자는 자음에서 내재된 모음을 제거하며, 겹자음을 나타내기 위해 자음 사이에 사용된다. 예를 들어, क (ka) + ् (halant) + त (ta) = क्त (kta). 시퀀스 ् (halant) + ् (halant)는 명시적인 halant가 있는 겹자음을 표시하며, 예를 들어 क (ka) + ् (halant) + ् (halant) + त (ta) = क्‌त이다. 시퀀스 ् (halant) + ़ (nukta)는 사용 가능한 경우 반자음이 있는 겹자음을 표시하며, 예를 들어 क (ka) + ् (halant) + ़ (nukta) + त (ta) = क्‍त이다.
ISCII와 유니코드 halent/virama 동작 간의 대응
ISCII유니코드
단일 halantE8halant094D
halant + halantE8 E8halant + ZWNJ094D 200C
halant + nuktaE8 E9halant + ZWJ094D 200D
Nukta 문자 ़—코드 포인트 E9 (233)
다른 ISCII 문자 뒤의 nukta 문자는 주요 ISCII 세트에 존재하지 않는 더 희귀한 여러 문자에 사용된다. 예를 들어, क (ka) + ़ (nukta) = क़ (qa)이다. 이 문자들은 다음 표와 같이 유니코드에 사전 합성된 형태가 존재한다.
ISCII nukta 시퀀스에 대응하는 단일 유니코드 문자
ISCII
코드 포인트
원래
문자
nukta가 포함된
문자
유니코드
코드 포인트
A1 (161)ँॐ0950
A6 (166)इऌ090C
A7 (167)ईॡ0961
AA (176)ऋॠ0960
B3 (179)कक़0958
B4 (180)खख़0959
B5 (181)गग़095A
BA (186)जज़095B
BF (191)डड़095C
C0 (192)ढढ़095D
C9 (201)फफ़095E
DB (219)िॢ0962
DC (220)ीॣ0963
DF (223)ृॄ0944
EA (234)।ऽ093D

ISCII 변환용 코드 페이지

[편집]

유니코드(UTF-8)에서 ISCII / ANSI 코딩으로 변환하려면 다음 코드 페이지를 사용할 수 있다.

  • 57002: 데바나가리 문자 (힌디어, 마라티어, 산스크리트어, 콘칸어)
  • 57003: 벵골 문자
  • 57004: 타밀 문자
  • 57005: 텔루구 문자
  • 57006: 아삼 문자
  • 57007: 오리야 문자
  • 57008: 칸나다 문자
  • 57009: 말라얄람 문자
  • 57010: 구자라트 문자
  • 57011: 펀자브어 (구르무키 문자)

모든 언어에 대한 코드 포인트

[편집]

각주

[편집]
  1. 1 2 Apple (2005년 4월 5일) [1998-02-05]. “Map (external version) from Mac OS Devanagari encoding to Unicode 2.1 and later.”. 유니코드 컨소시엄.
  2. 1 2 3 4 《The Unicode Standard v15.0 Chapter 12》 (PDF). The Unicode Consortium. 2024년 8월 13일에 확인함.
  3. 1 2 3 4 5 《IS13194:1991 (Soft copy)》 (PDF). Bureau of Indian Standards. 1999.
  4. ↑
    • 이 표는 여기 있는 ISCII 표준의 표 2와 3의 대응 관계[3]와 유니코드 코드 차트에서 도출할 수 있다.

외부 링크

[편집]