확장 ASCII

Extended ASCII
프로그램의 출력키그윈에서 아스키

확장 ASCII는 원래 96개의 ASCII 문자 집합과 최대 128개의 추가 문자를 포함하는 문자 인코딩 레퍼토리입니다."확장 ASCII"에 대한 공식적인 정의는 없으며, 심지어 용어를 사용하는 것조차 때때로 비판을 받는데,[1][2][3] 이는 미국 표준 협회(ANSI)가 더 많은 문자를 포함하도록 ANSI X3.4-1986 표준을 업데이트했거나 이 용어가 하나의 모호하지 않은 인코딩을 식별한다는 것을 의미하는 것으로 잘못 해석될 수 있기 때문입니다.어느 쪽도 그렇지 않습니다.

ISO 표준 ISO 8859는 ASCII 문자 집합의 (제한적인) 확장을 공식화한 최초의 국제 표준으로, 대부분의 서유럽 언어를 지원하는 ISO 8859-1("ISO 라틴어 1")은 서구에서 가장 잘 알려져 있습니다.확장된 ASCII 인코딩이 많이 있습니다(220개 이상의 DOS 및 Windows 코드 페이지).EBCDIC(다른 "주요 문자 코드")도 마찬가지로 수십 년에 걸쳐 많은 확장 변종(186개 이상의 EBCDIC 코드 페이지)을 개발했습니다.

현대의 모든 운영 체제는 수천 개의 문자를 지원하는 유니코드를 사용합니다.그러나 확장 ASCII는 컴퓨팅 역사에서 여전히 중요하게 남아 있으며, 여러 확장 ASCII 문자 집합을 지원하려면 나중에 UTF-8 인코딩 방식을 지원하기가 훨씬 더 쉬운 방식으로 소프트웨어를 작성해야 했습니다.

역사

ASCII는 1960년대에 텔레프린터전신, 그리고 일부 컴퓨팅을 위해 설계되었습니다.초기의 텔레프린터는 마이크로프로세서가 없고 작동하기에 충분한 전기기계 메모리를 가지고 있지 않았습니다.이들은 한 번에 한 문자씩 완전히 처리하여 즉시 유휴 상태로 돌아갔습니다. 이는 모든 제어 시퀀스가 한 문자 길이여야 하므로 이러한 제어를 위해 수많은 코드가 예약되어야 한다는 것을 의미했습니다.그것들은 타자기에서 파생된 임팩트 프린터였고, 고정된 글리프 세트만 인쇄할 수 있었고, 그것들은 금속활자 소자 또는 소자에 주조되었고, 이것은 또한 최소 글리프 세트를 장려했습니다.

7비트 ASCII는 이전의 5비트와 6비트 코드보다 향상되었습니다.2=128 코드 중 33개가 컨트롤에 사용되었으며 95개의 인쇄 가능한 문자(94개의 글리프와 1개의 공백)를 신중하게 선택했습니다. 여기에는 영어 알파벳(영문 upperc 및 소문자), 숫자 및 31개의 문장부호와 기호(표준 미국 타자기의 모든 기호와 프로그래밍 작업을 위해 선택된 몇 개)가 포함됩니다.일부 인기 있는 주변 기기는 64 인쇄 문자 서브셋만 구현했습니다.Teletype Model 33은 "a"를 "z" 또는 "{", "", "", """, "}," 및 "~"를 통해 전송할 수 없으며, 이러한 문자를 수신하면 대신 "A"를 "Z"(모든 대문자를 강제로 사용) 및 기타 대부분 유사한 5개의 기호("@", ""\", "]", "^")를 인쇄합니다.

ASCII 문자 집합은 미국 영어로 사용하기에 충분하지 않고 활자 설정에서 흔히 볼 수 있는 많은 글리프가 부족하며 보편적으로 사용하기에는 너무 작습니다.영어 이외의 알파벳 문자, 더 많은 종류의 구두점 및 띄어쓰기, 더 많은 수학 연산자 및 기호(x ÷ ⋅ ≠ ≥ ≈ π 등), 일부 프로그래밍 언어에서 사용되는 고유 기호, 이데올로그, 로고그램, 상자 그리기 문자 등을 직접 나타내려면 더 많은 문자 및 기호가 바람직하거나 유용하거나 필요합니다.

전세계 컴퓨터 사용자들의 가장 큰 문제는 다른 알파벳들이었습니다.ASCII의 영어 알파벳은 강세가 없는 문자 또는 ß의 ss와 같은 두 문자 근사로 대체되는 경우 유럽 언어를 거의 수용합니다.7비트 ASCII의 변형된 변형은 즉시 나타나 영국 텔레타입의 "#"을 "£"로, 일본의 "¥" 또는 한국의 "₩" 등으로 대체하는 등 사용이 적은 일부 기호 또는 문자를 교환했습니다.최소 29개의 변종 세트가 발생했습니다.12개의 코드 포인트는 적어도 하나의 수정된 집합에 의해 수정되었으며 82개의 "invariant" 코드만 남았습니다.그러나 프로그래밍 언어는 교체된 많은 문자에 의미를 부여했으며 C 세 개의 문자 시퀀스와 같은 해결책이 고안되었습니다.<> 그리고 <??>"는 "{" 및 "}"[4]을 나타냅니다.기본 알파벳이 다른 언어는 모든 라틴 문자를 키릴 문자와 가장 가까운 일치하는 문자로 대체하는 번역을 사용할 수 있습니다(영어가 키릴 문자로 인쇄되었을 때 이상하지만 다소 읽을 수 있는 텍스트가 됨).또한 두 글자를 오버프린트 할 수 있도록 (종종 뒷공간 제어 장치를 사이에 두고) 계획이 고안되었습니다.사용자들은 이러한 타협에 대해 불편함을 느꼈으며 종종 지원이 제대로 되지 않았습니다.[citation needed]

1970년대에 컴퓨터와 주변기기가 8비트 바이트로 표준화되었을 때, 컴퓨터와 소프트웨어가 256자 집합을 사용하는 텍스트를 프로그래밍에 대한 추가 비용과 저장에 대한 추가 비용 없이 처리할 수 있다는 것이 명백해졌습니다.(오류 확인, 부울 필드, 8자를 7바이트로 패킹하는 등 각 바이트의 미사용 8번째 비트가 재사용되지 않았다고 가정합니다.)이렇게 하면 ASCII를 그대로 사용할 수 있고 128자를 더 제공할 수 있습니다.많은 제조사들이 아스키코드와 사용되지 않는 코드 중 최대 128개로 구성된 8비트 문자 세트를 고안했습니다. 덴마크어, 네덜란드어, 프랑스어, 독일어, 포르투갈어, 스페인어, 스웨덴어 등 더 많이 사용되는 서유럽(및 라틴 아메리카) 언어를 포함하는 인코딩을 만들 수 있었습니다.

128개의 추가 문자는 여전히 모든 목적, 모든 언어, 심지어 모든 유럽 언어를 포괄하기에 충분하지 않기 때문에, 많은 독점적이고 국가적인 ASCII 파생 8비트 문자 집합의 출현은 불가피했습니다.이러한 집합 간의 번역(트랜스코딩)은 복잡하며(특히 문자가 두 집합 모두에 없는 경우), 수행되지 않는 경우가 많아 모히베이크(반읽기 가능한 결과 텍스트, 종종 사용자가 수동으로 해독하는 방법을 학습함)를 생성합니다.1990년대 후반에 마침내 국내 및 국제 표준 기구에 의한 협력 또는 조정의 시도가 있었지만, 제조업체-소유 세트는 국제 표준에서 특정 문화에서 인기가 있거나 독특한 캐릭터를 제외했기 때문에 지금까지 가장 인기가 있었습니다.

고유 확장 기능

ASCII의 다양한 자체 수정 및 확장은 특히 대학에서 EBCDIC 메인프레임 컴퓨터와 미니 컴퓨터에 등장했습니다.

Hewlett-Packard는 1978/1979년경부터 확장된 7비트/8비트 ASCII 문자 집합 HP Roman Extension에 유럽 문자를 추가하여 워크스테이션, 터미널 및 프린터에 사용하기 시작했습니다.이것은 나중에 널리 사용되는 일반적인 8비트 문자 집합 HP Roman-8 및 HP Roman-9로 진화했습니다.

AtariComdore 가정용 컴퓨터는 비표준 ASCII에 많은 그래픽 기호를 추가했습니다(각각 1963년의 원래 ASCII 표준 기준으로 AtASCIIPETTSCII).

TRS-80 가정용 컴퓨터를 위한 TRS-80 문자 세트는 저해상도 블록 그래픽을 구현한 64개의 세미그래픽 문자(0x80 ~ 0xBF)를 추가했습니다. (각 블록 그래픽 문자는 하위 6비트 중 하나에 의해 각 블록 픽셀이 효과적으로 제어되는 2x3 그리드의 픽셀로 표시됩니다.)[5]

IBM원래의 IBM PC에 8비트 확장 ASCII 코드를 도입했으며 나중에 다양한 언어와 문화를 위한 다양한 버전을 만들었습니다.IBM은 이러한 문자 집합을 코드 페이지라고 불렀고, 다른 제조업체에서 발명하고 사용한 문자 집합뿐만 아니라 자체적으로 발명한 문자 집합에도 번호를 할당했습니다.따라서 문자 집합은 IBM 코드 페이지 번호로 표시되는 경우가 많습니다.ASCII 호환 코드 페이지에서는 하위 128자가 표준 US-ASCII 값을 유지하고 상위 128자로 다른 페이지(또는 문자 집합)를 사용할 수 있습니다.예를 들어 북미 시장을 위해 만들어진 도스 컴퓨터는 프랑스어, 독일어 및 기타 유럽 언어에 필요한 악센트 문자와 일부 그래픽 선 그리기 문자가 포함된 코드 페이지 437을 사용했습니다.더 큰 문자 집합은 영어와 프랑스어와 같은 언어의 조합으로 문서를 만드는 것을 가능하게 했습니다. (프랑스 컴퓨터는 보통 코드 페이지 850을 사용하지만) 예를 들어 영어와 그리스어로 문서를 만드는 것은 가능하지 않습니다. (코드 페이지 737이 필요했습니다.)

애플 컴퓨터는 맥 OS 로만과 같은 8비트 확장 ASCII 코드를 맥 OS에 도입했습니다.애플 레이저라이터포스트스크립트 캐릭터 세트도 선보였습니다.

DEC(Digital Equipment Corporation)는 다국적 문자 집합을 개발했는데, 다국적 문자 집합은 문자 수가 적지만 문자와 발음 구별 조합 수가 더 많았습니다.VT220 이후 DEC 컴퓨터 단말기에서 지원되었습니다.이것은 나중에 Lotus International Character Set (LICS), ECMA-94ISO 8859-1과 같은 다른 문자 집합의 기초가 되었습니다.

ISO 8859

1987년 국제 표준화 기구(ISO)는 8비트 ASCII 확장을 위한 표준 세트인 ISO 8859를 발표했습니다.이 중 가장 인기 있는 것은 가장 일반적인 서유럽 언어에 충분한 문자를 포함하는 ISO 8859-1('ISO 라틴어 1'이라고도 함)이었습니다.8859 그룹의 다른 표준에는 라틴 문자를 사용하는 동유럽 언어의 경우 ISO 8859-2, 키릴 문자를 사용하는 언어의 경우 ISO 8859-5 등이 있습니다.

ISO 표준이 일부 공급업체별 확장 ASCII와 다른 한 가지 주목할 만한 방법은 상위 비트가 'set'인 ASCII 제어 문자에 해당하는 32개의 문자 위치 8016~9F가16 제어용으로 ISO에 예약되고 인쇄 가능한 문자에는 사용되지 않는다는 것입니다(유니코드에서도[6] 예약됨).이 규칙은 다른 확장 ASCII 집합에서 거의 보편적으로 무시되었습니다.

윈도우-1252

마이크로소프트는 윈도우에서 ISO 8859 표준을 사용하려고 했으나 [citation needed]곧 사용되지 않은 C1 컨트롤 문자를 추가 문자로 대체하여 독점적인 윈도우 1252 문자 집합을 만들었고 ANSI로 잘못 표기되기도 했습니다.추가된 문자들은 "컬리" 따옴표와 엠 대시, 유로 기호, 그리고 프랑스어와 핀란드어에서 빠진 글자들과 같은 다른 타이포그래피 요소들을 포함했습니다.이것은 세계에서 가장 많이 사용되는 확장 ASCII가 되었고, 8859-1이 지정된 경우에도 종종 웹에서 사용됩니다.[7][8]

문자 집합 혼동

각 확장 코드 포인트의 의미는 모든 인코딩에서 다를 수 있습니다.확장 코드가 포함된 텍스트 데이터(문자 시퀀스)를 올바르게 해석하고 표시하려면 텍스트를 읽거나 수신하는 하드웨어 및 소프트웨어가 텍스트에 적용되는 특정 확장 ASCII 인코딩을 사용해야 합니다.잘못된 인코딩을 적용하면 텍스트의 많은 또는 모든 확장 문자가 비합리적으로 대체됩니다.

소프트웨어는 고정 인코딩 선택을 사용하거나 기본 설정, 컴퓨터의 국가 및 언어 설정 확인, 텍스트의 선언문 읽기, 텍스트 분석, 사용자에게 질문하기, 사용자가 선택하거나 재정의할 수 있도록 허용하고/또는 마지막 선택으로 기본 설정함으로써 인코딩 팔레트에서 선택할 수 있습니다.서로 다른 운영 체제, 소프트웨어 및 인코딩을 사용하는 컴퓨터 간에 텍스트를 전송하는 경우 잘못된 인코딩을 적용하는 것이 일반적일 수 있습니다.

전체 영어 알파벳과 영어에서 가장 많이 사용되는 문자는 ASCII의 7비트 코드 포인트에 포함되어 있으며, 이는 모든 인코딩(대부분의 고유 인코딩)에 공통적으로 포함되어 있기 때문에 영어 텍스트는 잘못된 인코딩으로 해석하여 손상을 덜 받지만 다른 언어의 텍스트는 모지베이크(완전한 넌센스)로 표시될 수 있습니다.많은 인터넷 표준에서 ISO 8859-1을 사용하며 Microsoft Windows(ISO 8859-1의 코드 페이지 1252 슈퍼셋 사용)가 오늘날 개인용 컴퓨터의 지배적인 운영 체제이기 때문에 [citation needed][when?]ISO 8859-1을 예고 없이 사용하는 것은 매우 흔하며 달리 표시가 없는 한 일반적으로 가정할 수 있습니다.

많은 통신 프로토콜, 특히 SMTP 및 HTTP는 컨텐츠의 문자 인코딩에 IANA 할당 문자 집합 식별자를 태그해야 합니다.

참고 항목

참고문헌

  1. ^ Benjamin Riefenstahl (26 Feb 2001). "Re: Cygwin Termcap information involving extended ascii charicters". cygwin (Mailing list). Archived from the original on 11 July 2013. Retrieved 2 December 2012.
  2. ^ S. Wolicki (Mar 23, 2012). "Print Extended ASCII Codes in sql*plus". Retrieved May 17, 2022.
  3. ^ Mark J. Reed (March 28, 2004). "vim: how to type extended-ascii?". Newsgroup: comp.editors. Retrieved May 17, 2022.
  4. ^ "2.2.1.1 Trigraph sequences". Rationale for American National Standard for Information Systems - Programming Language - C. Archived from the original on 2018-09-29. Retrieved 2019-02-08.
  5. ^ Goldklang, Ira (2015). "Graphic Tips & Tricks". Archived from the original on 2017-07-29. Retrieved 2017-07-29.
  6. ^ "C1 Controls and Latin-1 Supplement Range: 0080–00FF" (PDF). The Unicode Standard, Version 15.1. Unicode Consortium.
  7. ^ "HTML Character Sets". W3 Schools. When a browser detects ISO-8859-1 it normally defaults to Windows-1252, because Windows-1252 has 32 more international characters.
  8. ^ "Encoding". WHATWG. 27 January 2015. sec. 5.2 Names and labels. Archived from the original on 4 February 2015. Retrieved 4 February 2015.

외부 링크