아스키

ASCII
아스키
MIL-STD-188-100의 ASCII 차트(1972)
MIME / IANA우리-
별칭ISO-IR-006,[1] ANSI_X3.4-1968, ANSI_X3.4-1986, ISO_646.irv:1991, ISO646-US, us, IBM367, cp367[2]
언어영어(Made for; 일부 외래어를 지원하지 않음), 말레이어, 로토카스어, 인터링가어, 이도어X-SAMPA
분류ISO/IEC 646 시리즈
확장
앞에ITA 2, 현장 데이터
성공자ISO/IEC 8859, ISO/IEC 10646 (Unicode)

ASCII(/ ˈæski ː/ ASS-kee)는 미국 정보 교환 표준 코드에서 약칭하여 전자 통신을 위한 문자 인코딩 표준입니다. ASCII 코드는 컴퓨터, 통신 장비 및 기타 장치의 텍스트를 나타냅니다. 개발 당시 컴퓨터 시스템의 기술적 한계 때문에 ASCII는 128개의 코드 포인트만을 가지고 있으며, 그 중 인쇄 가능한 문자는 95개에 불과하여 그 범위가 심각하게 제한되었습니다. 현대 컴퓨터 시스템은 수백만 개의 코드 포인트가 있는 유니코드를 사용하도록 진화했지만 이 중 처음 128개는 ASCII 집합과 동일합니다.

IANA(Internet Assigned Numbers Authority)는 이 문자 인코딩에 US-ASCII라는 이름을 선호합니다.[2]

ASCII는 IEEE 이정표 중 하나입니다.

개요

ASCII는 부분적으로 전신 코드에서 개발되었습니다. 최초의 상업적 용도는 벨 데이터 서비스가 추진하는 7비트 텔레프린터 코드로서 텔레타입 모델 33과 텔레타입 모델 35에 있었습니다.[when?] ASCII 표준 작업은 1961년 5월 미국 표준 협회(ASA) X3.2 소위원회의 첫 회의와 함께 시작되었습니다. 표준의 첫 번째 판은 1963년에 [4][5]출판되었고 1967년에 대대적인 수정을 [6][7]거쳤으며 1986년에 가장 최근에 업데이트되었습니다.[8] 이전의 전신 코드와 비교하여, 제안된 벨 코드와 ASCII는 목록의 더 편리한 정렬(즉, 알파벳화)과 텔레프린터 이외의 장치에 대한 기능을 추가하기 위해 주문되었습니다.[8]

네트워크 인터체인지를 위한 ASCII 형식의 사용은 1969년에 기술되었습니다.[9] 그 문서는 2015년에 공식적으로 인터넷 표준으로 승격되었습니다.[10]

원래 (현대) 영어 알파벳을 기반으로 하는 ASCII는 이 문서의 ASCII 차트에 표시된 대로 128개의 지정된 문자를 7비트 정수로 인코딩합니다.[11] 인코딩된 문자 중 95개는 인쇄 가능합니다. 숫자 0 ~ 9, 소문자 a ~ z, 대문자 A ~ Z 구두점 기호가 포함됩니다. 또한 원래 ASCII 사양에는 텔레타입 모델에서 시작된 33개의 비인쇄 제어 코드가 포함되어 있으며,[12] 캐리지 리턴, 라인 피드 코드와 같은 일부 코드는 여전히 일반적으로 사용되지만 대부분은 현재 사용되지 않습니다.

예를 들어, 소문자 i는 ASCII 인코딩에서 이진 1101001 = 16진수 69(i는 9번째 문자) = 10진수 105로 표시됩니다.

미국 표준이지만 ASCII에는 센트(¢)에 대한 코드 포인트가 없습니다. 또한 résumé, jalapéno와 같은 통사적 표식이 있는 영어 용어나 Beyoncé와 같은 통사적 표식이 있는 고유 명사는 지원하지 않습니다.

히스토리

ASCII (1963). 컨트롤 동일한 컨트롤의 사진이 존재하는 위치에 표시되거나 그렇지 않은 경우 회색 점이 표시됩니다.

정보 교환을 위한 미국 표준 코드(ASCII)는 X3 위원회라고 불리는 미국 표준 협회(ASA)의 위원회의 후원 하에 X3.2(이후 X3L2) 소위원회에 의해 개발되었으며, 나중에 그 소위원회의 X3.2.4 작업 그룹(현재의 INCITS)에 의해 개발되었습니다. ASA는 나중에 미국 표준 협회(USASI)[3]: 211 가 되었고, 결국 미국 표준 협회(ANSI)가 되었습니다.

다른 특수 문자와 제어 코드가 입력되어 ASCII는 ASA X3.4-1963으로 출판되었으며,[5][13] 할당된 의미 없이 28개의 코드 위치를 남겼고, 미래의 표준화를 위해 예약되었으며, 할당되지 않은 제어 코드 하나를 남겼습니다.[3]: 66, 245 소문자가 아닌 제어 문자가 많아야 하는지에 대해서는 당시 논의가 좀 있었습니다.[3]: 435 이 결정은 오래 지속되지 않았습니다: 1963년 5월에 새로운 텔레그래프 알파벳에 관한 CCITT 작업당은 6번과 7번 스틱[a][14] 소문자를 할당할 것을 제안했고,[15] 국제 표준화 기구 TC 97 SC 2는 10월에 이 변경 사항을 초안 표준에 포함시키기 위해 투표했습니다.[16] X3.2.4 태스크 그룹은 1963년 5월 회의에서 ASCII로의 변경에 대한 승인을 투표했습니다.[17] 스틱[a][14] 6과 7에서 소문자를 찾음으로써 문자가 대문자와 단일 비트씩 비트 패턴이 달라져 대소문자를 구분하지 않는 문자 매칭과 키보드 및 프린터 구성이 간소화되었습니다.

X3 위원회는 다른 새 문자(괄호세로 막대 문자),[18] 일부 제어 문자의 이름 변경(SOM은 헤더의 시작(SOH), 다른 문자의 이동 또는 제거(RU는 제거됨) 등을 포함한 다른 변경 사항을 수행했습니다.[3]: 247–248 ASCII는 이후 USAS X3.4-1967,[6][19] USAS X3.4-1968,[20] ANSI X3.4-1977, 마지막으로 ANSI X3.4-1986으로 업데이트되었습니다.[8][21]

ASCII 표준의 개정판:

X3.15 표준에서 X3 위원회는 또한 ASCII를 전송하는 방법([3]: 249–253 [27]최소 중요 비트 우선)과 천공 테이프에 기록하는 방법을 다루었습니다. 그들은 자기 테이프에 대한 9트랙 표준을 제안했고 일부 천공 카드 형식을 처리하려고 시도했습니다.

설계시 고려사항

비트폭

X3.2 소위원회는 이전의 텔레프린터 인코딩 시스템을 기반으로 ASCII를 설계했습니다. 다른 문자 인코딩과 마찬가지로 ASCII는 디지털 비트 패턴과 문자 기호(예: 자소제어 문자) 간의 대응을 지정합니다. 이를 통해 디지털 기기들이 서로 통신하고 문자 언어와 같은 문자 중심의 정보를 처리, 저장, 통신할 수 있습니다. ASCII가 개발되기 전에 사용된 인코딩에는 26개의 알파벳 문자, 10개의 숫자 및 11개에서 25개의 특수 그래픽 심볼이 포함되었습니다. 이 모든 것을 포함하고 1924년의 Comité Consultatif International Téléphonique et Télegraphique (CCITT) International Telegraphic No. 2 (ITA2) 표준,[28][29] FIELDATA (1956[citation needed]) 및 EBCDIC (1963) 초기 표준과 호환되는 문자를 제어하기 위해 ASCII에 64개 이상의 코드가 필요했습니다.

ITA2는 1870년에 에밀 보닷이 발명하고 1874년에 특허를 낸 5비트 전신 코드를 기반으로 했습니다.[29]

위원회는 6비트 코드로 64개 이상의 코드를 표현할 수 있는 (ITA2와 같은) 시프트 함수의 가능성에 대해 논의했습니다. 시프트된 코드에서 일부 문자 코드는 다음 문자 코드에 대한 옵션 사이에서 선택을 결정합니다. 시프트 코드를 전송할 때 발생하는 오류로 인해 전송의 긴 부분을 읽을 수 없기 때문에 콤팩트한 인코딩이 가능하지만 데이터 전송에 대한 신뢰성은 떨어집니다. 표준 위원회는 시프트에 반대하기로 결정했고, 따라서 ASCII는 적어도 7비트 코드를 필요로 했습니다.[3]: 215 §13.6, 236 §4

위원회는 8비트(옥텟)를 사용하면 두 개의 4비트 패턴이 이진 코드 십진법으로 두 자리를 효율적으로 인코딩할 수 있기 때문에 8비트 코드를 고려했습니다. 그러나 7개로 충분할 때 8비트를 전송하려면 모든 데이터 전송이 필요합니다. 위원회는 데이터 전송과 관련된 비용을 최소화하기 위해 7비트 코드를 사용하기로 투표했습니다. 당시 천공 테이프는 한 위치에서 8비트를 기록할 수 있었기 때문에 원하는 경우 오류 검사를 위한 패리티 비트도 허용했습니다.[3]: 217 §c, 236 §5 패리티 검사를 사용하지 않은 8비트 시스템(옥텟을 기본 데이터 유형으로 사용)은 일반적으로 8비트를 0으로 설정합니다.[30]

내부조직

코드 자체는 식별하기 쉽도록 대부분의 제어 코드가 함께 있고 모든 그래픽 코드가 함께 있도록 패턴화되었습니다. 처음 두 개의 소위 ASCII 스틱[a][14](32개 위치)은 제어 문자를 위해 예약되었습니다.[3]: 220, 236 8, 9) "공간" 문자정렬을 쉽게 하기 위해 그래픽 앞에 와야 했기 때문에 20번hex 위치가 되었습니다.[3]: 237 §10 같은 이유로, 구분자로 일반적으로 사용되는 많은 특수 기호가 숫자 앞에 배치되었습니다. 위원회는 대문자 64자 알파벳을 지원하는 것이 중요하다고 판단하고, ASCII 패턴을 선택하여 DEC SIXB와 [3]: 228, 237 §14 같이 사용 가능한 64자 그래픽 코드 세트로 쉽게 축소할 수 있도록 했습니다.IT 코드 (1963). 따라서 소문자는 대문자와 인터리빙되지 않았습니다. 소문자 및 기타 그래픽에 대한 옵션을 사용할 수 있도록 특수 및 숫자 코드를 문자 앞에 배열하고 해당 영국 표준 초안과 일치하도록 문자 A를 위치hex 41에 배치했습니다.[3]: 238 §18 숫자 0~9는 011로 접두사가 붙지만 나머지 4비트는 이진법으로 각각의 값에 해당하므로 이진법으로 부호화된 십진법으로 변환이 간단합니다(예를 들어 5는 0110101로 인코딩되고 5는 이진법으로 0101).

많은 숫자가 아닌 문자들이 타자기의 이동된 위치에 대응하도록 위치했습니다. 중요한 미묘함은 이 문자들이 전기 타자기가 아닌 기계식 타자기를 기반으로 했다는 것입니다.[31] 기계식 타자기는 시프트 키를 가진 최초의 타자기인 레밍턴 2호(1878)가 정한 사실상의 표준을 따랐고, 시프트된 값은 23456789- 이었다 "#$%_&'() – 초기 타자기는 O( 대문자 o)와 l( 소문자 L)을 대신 사용하여 0과 1을 생략했지만, 1! 그리고. 0) 쌍은 0과 1이 일반화되면 표준이 되었습니다. 따라서 ASCII에서는 !"#$% 인접한 스틱의 숫자 1~5에 해당하는 두 번째 스틱(1~[a][14]5번 위치)에 배치되었습니다.[a][14] 괄호90에 해당할 수 없지만 0에 해당하는 자리는 공백 문자로 가져갔기 때문에 0과 일치할 수 없습니다. 이것은 제거함으로써 수용되었습니다. _ (밑줄) 6에서 나머지 문자를 이동하는 것은 괄호를 8과 9로 배치한 많은 유럽 타자기에 해당합니다. 타자기와의 이러한 불일치로 인해 기존의 기계식 타자기와는 다르게 ASCII에 해당하는 왼쪽으로 이동된 레이아웃을 사용한 Teletype Model 33과 같은 비트 페어링 키보드가 발생했습니다.

전기 타자기, 특히 IBM 셀렉트릭(1961)은 IBM PC(1981), 특히 모델 M(1984)에 이어 컴퓨터의 실질적인 표준이 된 다소 다른 레이아웃을 사용했습니다. 따라서 현대 키보드의 기호에 대한 시프트 값은 이전 키보드만큼 ASCII 테이블과 밀접하게 일치하지 않습니다./? 짝은 또한 2번으로 거슬러 올라가며, 그리고 ,< .> 일부 키보드에서 쌍이 사용되었습니다(2번을 포함한 다른 키보드는 이동하지 않았습니다). , (comma) 또는 . (full stop)으로 변환하지 않고 대문자로 사용할 수 있습니다. 그러나 ASCII는 다음을 분할했습니다. ;: 쌍(2번 날짜), 재배열된 수학 기호(다양한 규칙, 일반적으로) -* =+)에게 :* ;+ -=.

일부 당시 일반적이었던 타자기 문자는 포함되지 않았습니다. 특히 ½ ¼ ¢,하는 동안에 ^ ` ~ 국제적인 사용을 위한 진단서로 포함되었습니다. < > 수학적 용도로, 단순한 선 문자와 함께. \ (일반적인 것 외에) /). @ 기호는 유럽 대륙에서 사용되지 않았으며 위원회는 프랑스어 변형에서 악센트 acc로 대체될 것으로 예상하여 @는 문자 A 바로 앞인 40번 위치에 놓였습니다.

데이터 전송에 필수적으로 느껴지는 제어 코드는 메시지 시작(SOM), 주소 종료(EOA), 메시지 종료(EOT), 전송 종료(EOT), "누구세요?"(WRU), "누구세요?"(RU), 예약된 장치 제어(DC0), 동기 유휴(SYNC), 확인(ACK)이었습니다. 이들은 비트 패턴 사이의 해밍 거리를 최대화하도록 배치되었습니다.[3]: 243–245

문자순

ASCII 코드 순서는 ASCII 베타 순서라고도 합니다.[32] 데이터의 수집은 "표준" 알파벳 순서(연결 순서)가 아닌 이 순서로 수행되는 경우가 있습니다. ASCII 순서의 주요 편차는 다음과 같습니다.

  • 모든 대문자는 소문자 앞에 나옵니다. 예를 들어 "Z"는 "a" 앞에 오는 것입니다.
  • 숫자와 많은 구두점 표시는 문자 앞에 오는 것입니다.

중간 순서는 ASCII 값을 비교하기 전에 대문자를 소문자로 변환합니다.

문자 집합

ASCII(1977/1986)
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x NUL SOH STX ETX EOT ENQ ACK 비에스 HT LF VT FF CR 그렇게 SI
1배 DLE DC1 DC2 DC3 DC4 SYN ETB 할 수 있다 전자파 후보선수 ESC FS GS 알에스 미국
2배 SP ! " # $ % & ' ( ) * + , - . /
3배 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4배 @ A B C D E F G H I J K L M N O
5배 P Q R S T U V W X Y Z [ \ ] ^ _
6배 ` a b c d e f g h i j k l m n o
7배 p q r s t u v w x y z { } ~ DEL
1963년 버전에서 변경 또는 추가됨
1963년 버전과 1965년 드래프트에서 모두 변경됨

문자군

컨트롤 문자

32개의 제어 문자, 공백 및 삭제 문자에 할당된 초기 기호(ISO 2047, MIL-STD-188-100, 1972)

ASCII는 제어 문자의 경우 처음 32개의 코드 포인트(소수 0~31)와 마지막 코드 포인트(소수 127)를 예약합니다. 이러한 코드는 주변 장치(: 프린터)를 제어하거나 자기 테이프에 저장된 것과 같은 데이터 스트림에 대한 메타 정보를 제공하기 위한 것입니다. 이러한 코드 포인트는 이름에도 불구하고 디버깅 목적으로 "플레이스홀더" 기호(ISO 2047 및 그 이전 코드 포인트와 같은)가 할당되지만 인쇄 가능한 문자를 나타내는 것은 아닙니다.

예를 들어, 문자 0x0A는 "라인 피드" 기능(프린터가 용지를 진전시키는 원인이 됨)을 나타내고, 문자 8은 "백스페이스"를 나타냅니다. RFC2822는 비백인 공간 제어 문자로서 캐리지 리턴, 라인 피드 또는 화이트 스페이스를 포함하지 않는 제어 문자를 말합니다.[33] 기본 줄 방향 형식을 규정하는 제어 문자를 제외하고 ASCII는 문서 내에서 텍스트의 구조나 모양을 설명하기 위한 메커니즘을 정의하지 않습니다. 마크업 언어, 주소 페이지, 문서 레이아웃 및 포맷과 같은 다른 체계.

원래 ASCII 표준은 각 제어 문자에 대한 짧은 설명 문구만을 사용했습니다. 이로 인해 발생한 모호성은 예를 들어 터미널 링크에서 데이터 스트림과 약간 다르게 문자가 사용되는 경우가 있으며, "삭제"의 의미로 우연히 사용되는 경우도 있습니다.

이러한 문자의 해석에 영향을 미친 가장 영향력 있는 단일 장치는 Teletype Model 33 ASR로, 종이 테이프 리더/펀치 옵션이 있는 인쇄 터미널이었을 것입니다. 종이 테이프는 1980년대까지 장기적인 프로그램 저장을 위해 매우 인기 있는 매체였으며, 자기 테이프보다 비용이 덜 들고 어떤 면에서는 깨지기 쉽습니다. 특히 코드 17(control-Q, DC1, XON이라고도 함), 19(control-S, DC3, XOFF라고도 함), 127(delete)에 대한 Teletype Model 33 기계 할당이 사실상의 표준이 되었습니다. 모델 33은 컨트롤-G(코드 7, BEL, 조작자에게 청각적으로 경고한다는 의미)를 문자 그대로 사용한 것으로도 유명합니다. 장치에는 BEL 문자를 수신할 때 울렸던 실제 벨이 포함되어 있기 때문입니다. O 키의 키톱에도 왼쪽 화살표 기호가 표시되어 있었기 때문에, "이전 문자 삭제"로 해석되는 코드 15(control-O, shift in)의 비준수 사용도 초기 시분할 시스템에서 채택되었지만 결국 무시되었습니다.

자동 용지 테이프 리더를 장착한 Teletype 33 ASR이 control-S(XOFF, 전송 오프의 줄임말)를 수신하면 테이프 리더가 중지되고 control-Q(XON, 전송 온)를 수신하면 테이프 리더가 다시 시작됩니다. 소위 흐름 제어 기술은 초기의 몇몇 컴퓨터 운영 체제에서 버퍼 오버플로우가 임박했기 때문에 전송을 중단하라는 "악수" 신호로 채택되었습니다. 이 기술은 많은 시스템에서 수동 출력 제어 기술로 오늘날까지 지속되고 있습니다. 일부 시스템에서는 control-S가 의미를 유지하지만 control-Q는 출력을 재개하기 위해 두 번째 control-S로 대체됩니다.

또한 33 ASR은 컨트롤-R(DC2) 및 컨트롤-T(DC4)를 사용하여 테이프 펀치를 시작 및 중지하도록 구성할 수 있습니다. 이 기능이 장착된 일부 장치에서는 문자 위의 키캡에 해당하는 컨트롤 문자가 TAPE와 TAPE였습니다.[34]

삭제 대 백스페이스

Teletype은 타이프 헤드를 뒤로 움직일 수 없어서 BS(백스페이스)를 보낼 수 있는 키가 키보드에 없었습니다. 대신 키가 표시되어 있었습니다. RUB OUT 코드 127(DEL)을 보냈습니다. 이 키의 목적은 수동으로 입력한 종이 테이프의 실수를 지우는 것이었습니다. 작업자는 테이프 펀치의 버튼을 눌러 백업한 다음, 모든 구멍을 뚫고 실수를 무시하려는 문자로 대체해야 했습니다.[35] 텔레타입은 일반적으로 DEC(Digital Equipment Corporation)의 저렴한 컴퓨터와 함께 사용되었습니다. 이러한 시스템은 사용 가능한 키를 사용해야 했기 때문에 DEL 문자는 이전 문자를 지우기 위해 할당되었습니다.[36][37] 이 때문에 DEC 비디오 단말기는 기본적으로 "Backspace"로 표시된 키에 대한 DEL 문자를 전송하고 "Delete"로 표시된 별도의 키는 탈출 시퀀스를 전송했으며 다른 많은 경쟁 단말기는 백스페이스 키에 대한 BS 문자를 전송했습니다.

유닉스 터미널 드라이버는 이전 문자를 지우는 데 한 개의 문자만 사용할 수 있었는데, 이 문자는 BS나 DEL로 설정할 수 있었지만 둘 다 설정할 수는 없었기 때문에 사용자가 어떤 터미널을 사용하는지에 따라 결정해야 하는 모호한 상황이 반복됩니다(예를 들어 ksh, bash, zsh와 같은 선 편집을 허용하는 은 둘 다 이해합니다). 어떤 키도 BS 문자를 보내지 않았다는 가정은 제어+H를 GNU Emacs의 "help" prefix 명령과 같은 다른 용도로 사용할 수 있게 했습니다.[38]

탈출하다

더 많은 컨트롤 문자에 원래 문자와 상당히 다른 의미가 할당되었습니다. 예를 들어, "탈출" 문자(ESC, 코드 27)는 원래 "탈출 시퀀스"의 의미를 호출하는 대신 다른 제어 문자를 리터럴로 전송할 수 있도록 의도되었습니다. 이는 URL 인코딩, C 언어 문자열 및 특정 문자가 예약된 의미를 갖는 다른 시스템에서 발생하는 "탈출"과 동일한 의미입니다. 시간이 흐르면서 이 해석은 함께 채택되었고 결국 변경되었습니다.

일반적으로 터미널로 전송되는 ESC는 일반적으로 명령 시퀀스의 시작을 ECMA-48(1972)과 그 후속에서 "ANSI 이스케이프 코드"(또는 더 적절하게는 "제어 시퀀스 도입기")로 표시하며, ESC로 시작하여 ""(왼쪽 괄호) 문자가 뒤따릅니다. 반면 터미널에서 전송된 ESC는 TECO 및 텍스트 편집기와 같이 작동 또는 특수 모드를 종료하는 데 사용되는 대역외 문자로 가장 많이 사용됩니다. 그래픽 사용자 인터페이스(GUI) 및 윈도잉 시스템에서 ESC는 일반적으로 응용 프로그램이 현재 작업을 중단하거나 완전히 종료(종료)하도록 합니다.

줄의 끝.

많은 제어 문자들의 고유한 모호성은 그들의 과거 사용 방식과 결합되어 시스템 간에 "일반 텍스트" 파일을 전송할 때 문제를 일으켰습니다. 이에 대한 가장 좋은 예는 다양한 운영 체제새로운 회선 문제입니다. 텔레타이프 기계에서는 "캐리지 리턴"(인쇄 헤드를 줄의 처음으로 이동시키는)과 "라인 피드"(인쇄 헤드를 이동시키지 않고 용지를 한 줄씩 이동시키는)로 텍스트 줄을 종료해야 했습니다. "캐리지 리턴(carriage return)"이라는 이름은 수동 타자기에서 리본을 치는 타이프 바가 정지된 상태에서 종이를 들고 있는 마차가 움직인다는 사실에서 비롯되었습니다. 종이를 다음 줄에 배치하기 위해서는 마차 전체를 오른쪽으로 밀어서(뒤로) 돌려야 했습니다.

DEC 운영 체제(OS/8, RT-11, RSX-11, RSTS, TOPs-10 등)는 콘솔 장치(원래 Teletype 머신)가 작동하도록 두 문자를 모두 사용하여 줄의 끝을 표시했습니다. 소위 "glass TTYs"(나중에 CRT 또는 "dumb terminals"라고 불림)가 등장할 때까지, 이전 버전과의 호환성은 매우 잘 확립되어 있었기 때문에 계속해서 이를 따를 필요가 있었습니다. Gary KildallCP/M을 만들 때 DEC의 RT-11 운영 체제에 사용되는 몇 가지 명령줄 인터페이스 규약에서 영감을 얻었습니다.

1981년 PC DOS가 도입되기 전까지 IBM은 1970년대 운영 체제에서 ASCII 대신 EBCDIC 인코딩을 사용했으며 "캐리지 리턴" 개념이 무의미한 펀치 카드 입력 및 라인 프린터 출력을 지향했기 때문에 이에 대한 영향력이 없었습니다. IBM의 PC DOS(마이크로소프트에서 MS-DOS로도 판매)는 CP/M에 기반을 둔 느슨함으로 인해 이 규칙을 계승했고,[39] 윈도우는 MS-DOS에서 이 규칙을 계승했습니다.

줄의 끝을 표시하기 위해 두 개의 문자를 요구하는 것은 그 자체로 마주쳤을 때 각 문자를 해석하는 방법에 대해 불필요한 복잡성과 모호성을 초래합니다. 문제를 단순화하기 위해 Multics에서 파일을 포함한 일반 텍스트 데이터 스트림은 LF(Line Feed)만 라인 종단기로 사용했습니다.[40]: 357 유닉스와 유닉스 계열 시스템, 아미가 시스템은 멀틱스에서 이 규칙을 채택했습니다. 반면에 원래 매킨토시 OS, 애플 도스, 프로 도스는 캐리지 리턴(CR)만을 라인 터미네이터로 사용했지만, 애플은 이제 이러한 오래된 운영 체제를 유닉스 기반의 macOS 운영 체제로 대체했기 때문에 이제는 라인 피드(LF)도 사용합니다. Radio Shack TRS-80은 또한 회선을 종단하기 위해 단독 CR을 사용했습니다.

ARPANET에 부착된 컴퓨터에는 CR-LF 라인엔드를 사용하여 TOPS-10, TENEX와 같은 운영체제를 실행하는 기계, LF 라인엔드를 사용하여 멀틱스와 같은 운영체제를 실행하는 기계, OS/360과 같은 운영체제를 실행하는 기계가 포함되었습니다. ASCII 인코딩이 아닌 EBCDIC를 사용했습니다. Telnet 프로토콜은 ASCII "Network Virtual Terminal"(NVT)를 정의하여 서로 다른 회선 종단 규칙과 문자 집합을 가진 호스트 간의 연결을 네트워크를 통해 표준 텍스트 형식을 전송하여 지원할 수 있도록 했습니다. 텔넷은 CR-LF 회선 종단과 함께 ASCII를 사용했으며, 다른 규약을 사용하는 소프트웨어는 로컬 규약과 NVT 사이에서 번역됩니다.[41] 파일 전송 프로토콜은 기본 ASCII 모드에서 명령을 전송하고 데이터를 전송할 때 사용하기 위해 네트워크 가상 터미널을 사용하는 것을 포함한 Telnet 프로토콜을 채택했습니다.[42][43] 이는 이러한 프로토콜의 구현과 NVT의 CR-LF 라인 엔드 협약을 사용하지 않는 시스템에서 E-메일 및 World Wide Web에 사용되는 것과 같은 다른 네트워크 프로토콜의 구현에 복잡성을 더합니다.[44][45]

파일/스트림 끝

PDP-6 모니터와 [36]PDP-10 후속 제품인 TOPS-10은 [37]단말기로부터의 입력을 위한 파일 끝 표시로서 control-Z(SUB)를 사용했습니다. CP/M과 같은 일부 운영 체제는 디스크 블록 단위로만 파일 길이를 추적했으며, control-Z를 사용하여 파일의 실제 텍스트의 끝을 표시했습니다.[46] 이러한 이유로, EOF는 구어적이고 관습적으로 SUBstitute 대신 control-Z의 세 글자 약자로 사용되었습니다. ETX(End-of-text character), 즉 제어-C는 다양한 이유로 부적절했지만, 제어-Z를 제어 문자로 사용하여 파일을 끝내는 것은 알파벳 끝에 있는 문자 Z의 위치와 유사하고, 매우 편리한 기억법의 보조 역할을 합니다. 역사적으로 일반적이고 여전히 널리 사용되는 규칙은 ETX 문자 규칙을 사용하여 일반적으로 키보드에서 입력 데이터 스트림을 통해 프로그램을 중단 및 중지합니다.

유닉스 터미널 드라이버는 제어-D라고도 알려진 전송 종료 문자(EOT)를 사용하여 데이터 스트림의 끝을 나타냅니다.

C 프로그래밍 언어와 유닉스 규칙에서 널 문자는 텍스트 문자열을 종료하는 데 사용됩니다. 이러한 널 종료 문자열은 약어로 ASCIZ 또는 ASCIZ로 알려져 있으며 여기서 Z는 "0"을 의미합니다.

관리코드도

이진법 10월 12월 육각형 약어 유니코드 컨트롤 픽처스[b] 캐럿 표기법[c] C탈출 순서[d] 이름(1967)
1963 1965 1967
000 0000 000 0 00 NULL NUL ^@ \0 [e]
000 0001 001 1 01 SOM SOH ^A 헤딩의 시작
000 0010 002 2 02 EOA STX ^B 텍스트 시작
000 0011 003 3 03 ETX ^C 텍스트 끝
000 0100 004 4 04 EOT ^D 전송의 끝.
000 0101 005 5 05 WRU ENQ ^E 문의
000 0110 006 6 06 RU ACK ^F 인정
000 0111 007 7 07 ^G \a
000 1000 010 8 08 FE0 비에스 ^H \b 뒷공간[f][g]
000 1001 011 9 09 HT/SK HT ^나 \t 가로 탭[h]
000 1010 012 10 0A LF ^J \n 라인 피드
000 1011 013 11 0B VTAB VT ^K \v 세로 탭
000 1100 014 12 0C FF ^L \f 양식 피드
000 1101 015 13 0D CR ^M \r 캐리지 리턴[i]
000 1110 016 14 0E 그렇게 ^N Shift Out
000 1111 017 15 0F SI ^O 시프트 인
001 0000 020 16 10 DC0 DLE ^P 데이터 링크 탈출
001 0001 021 17 11 DC1 ^Q 장치 컨트롤 1(종종 XON)
001 0010 022 18 12 DC2 ^R 장치 컨트롤 2
001 0011 023 19 13 DC3 ^S 장치 컨트롤 3(종종 XOFF)
001 0100 024 20 14 DC4 ^T 장치 컨트롤 4
001 0101 025 21 15 ERR ^U 부정적 확인
001 0110 026 22 16 SYNC SYN ^V 동기 유휴 상태
001 0111 027 23 17 LEM ETB ^W 전송 블록 끝
001 1000 030 24 18 에스0 할 수 있다 ^X 취소
001 1001 031 25 19 에스원 전자파 ^Y 중간 끝
001 1010 032 26 1A 에스투 SS 후보선수 ^Z 대체물
001 1011 033 27 1B 에스쓰리 ESC ^[ \e[j] 탈출하다[k]
001 1100 034 28 1C 에스포 FS ^\ 파일 구분자
001 1101 035 29 1D S5 GS ^] 그룹 구분자
001 1110 036 30 1E S6 알에스 ^^[l] 레코드 구분자
001 1111 037 31 1F S7 미국 ^_ 단위 구분자
111 1111 177 127 7F DEL ^? 삭제[m][g]

ISO 2047 그래픽 또는 16진수와 같은 전문 장비에서 다른 표현을 사용할 수 있습니다.

인쇄 가능한 문자

인쇄 가능 문자로 알려진 코드 20hex~7E는hex 문자, 숫자, 문장 부호 및 몇 가지 기타 기호를 나타냅니다. 총 95개의 인쇄 가능한 문자가 있습니다.[n]

"공간" 문자인 코드 20은hex 키보드의 스페이스 바에 의해 생성되는 단어들 사이의 공간을 나타냅니다. 공간 문자는 (제어 문자가 아닌)[3]: 223 [9] 보이지 않는 그래픽으로 간주되므로 이전 섹션 대신 아래 표에 나열됩니다.

코드 7F는hex 인쇄 불가능한 "삭제"(DEL) 제어 문자에 해당하므로 이 차트에서는 생략되며, 이전 섹션의 차트에서 설명합니다. 이전 버전의 ASCII에서는 캐럿(5Ehex) 대신 위쪽 화살표를 사용하고 언더스코어hex(5F) 대신 왼쪽 화살표를 사용했습니다.[5][47]

이진법 10월 12월 육각형 글리프
1963 1965 1967
010 0000 040 32 20 공간
010 0001 041 33 21 !
010 0010 042 34 22 "
010 0011 043 35 23 #
010 0100 044 36 24 $
010 0101 045 37 25 %
010 0110 046 38 26 &
010 0111 047 39 27 '
010 1000 050 40 28 (
010 1001 051 41 29 )
010 1010 052 42 2A *
010 1011 053 43 2B +
010 1100 054 44 2C ,
010 1101 055 45 2D -
010 1110 056 46 2E .
010 1111 057 47 2F /
011 0000 060 48 30 0
011 0001 061 49 31 1
011 0010 062 50 32 2
011 0011 063 51 33 3
011 0100 064 52 34 4
011 0101 065 53 35 5
011 0110 066 54 36 6
011 0111 067 55 37 7
011 1000 070 56 38 8
011 1001 071 57 39 9
011 1010 072 58 3A :
011 1011 073 59 3B ;
011 1100 074 60 3C <
011 1101 075 61 3D =
011 1110 076 62 3E >
011 1111 077 63 3F ?
100 0000 100 64 40 @ ` @
100 0001 101 65 41 A
100 0010 102 66 42 B
100 0011 103 67 43 C
100 0100 104 68 44 D
100 0101 105 69 45 E
100 0110 106 70 46 F
100 0111 107 71 47 G
100 1000 110 72 48 H
100 1001 111 73 49 I
100 1010 112 74 4A J
100 1011 113 75 포비 K
100 1100 114 76 4C L
100 1101 115 77 4D M
100 1110 116 78 포이 N
100 1111 117 79 4F O
101 0000 120 80 50 P
101 0001 121 81 51 Q
101 0010 122 82 52 R
101 0011 123 83 53 S
101 0100 124 84 54 T
101 0101 125 85 55 U
101 0110 126 86 56 V
101 0111 127 87 57 W
101 1000 130 88 58 X
101 1001 131 89 59 Y
101 1010 132 90 5A Z
101 1011 133 91 5B [
101 1100 134 92 5C \ ~ \
101 1101 135 93 5D ]
101 1110 136 94 5E ^
101 1111 137 95 5F _
110 0000 140 96 60 @ `
110 0001 141 97 61 a
110 0010 142 98 62 b
110 0011 143 99 63 c
110 0100 144 100 64 d
110 0101 145 101 65 e
110 0110 146 102 66 f
110 0111 147 103 67 g
110 1000 150 104 68 h
110 1001 151 105 69 i
110 1010 152 106 6A j
110 1011 153 107 6B k
110 1100 154 108 6C l
110 1101 155 109 6D m
110 1110 156 110 6E n
110 1111 157 111 6F o
111 0000 160 112 70 p
111 0001 161 113 71 q
111 0010 162 114 72 r
111 0011 163 115 73 s
111 0100 164 116 74 t
111 0101 165 117 75 u
111 0110 166 118 76 v
111 0111 167 119 77 w
111 1000 170 120 78 x
111 1001 171 121 79 y
111 1010 172 122 7A z
111 1011 173 123 7B {
111 1100 174 124 7C ACK ¬
111 1101 175 125 7D }
111 1110 176 126 7E ESC ~

사용.

ASCII는 1963년 미국 전화 텔레그래프의 TWX(Teletype Writer eXchange) 네트워크를 위한 7비트 텔레프린터 코드로 상업적으로 처음 사용되었습니다. TWX는 원래 경쟁사인 텔렉스 텔레프린터 시스템에서도 사용되었던 이전의 5비트 ITA2를 사용했습니다. 밥 베머는 탈출 순서와 같은 특징들을 소개했습니다.[4] 그의 영국 동료 휴 맥그리거 로스(Hugh McGregor Ross)는 이 작업을 대중화하는 데 도움을 주었는데, 베머(Bemer)에 따르면 "아스키가 될 코드는 유럽에서 처음으로 베머-로스 코드(Bemer-Ross Code)라고 불리게 되었습니다."[48] 베머는 ASCII에 대한 광범위한 연구로 인해 "ASCII의 아버지"라고 불립니다.[49]

1968년 3월 11일 미국 대통령 린든 B. 존슨미국 연방 정부가 구입한 모든 컴퓨터가 ASCII를 지원하도록 명령했습니다.[50][51][52]

저는 또한 컴퓨터 작업에 사용될 때 자기 테이프와 종이 테이프에 대한 정보 교환 표준 코드를 기록하기 위한 표준에 관한 상무부 장관 [Luth H. Hodges]의 권고를 승인했습니다. 1969년 7월 1일 이후에 연방 정부의 재고품으로 반입되는 모든 컴퓨터 및 관련 장비 구성은 정보 교환 표준 코드와 이러한 매체를 사용할 때 자기 테이프 및 종이 테이프 표준에 규정된 형식을 사용할 수 있어야 합니다.

ASCII는 UTF-8 인코딩이 이를 능가한 2007년 12월까지 월드 와이드 웹에서 가장 일반적인 문자 인코딩이었습니다. UTF-8은 ASCII와 하위 호환성이 있습니다.[53][54][55]

변형과 파생

컴퓨터 기술이 전 세계로 확산됨에 따라 서로 다른 표준 단체와 기업들은 로마자 기반 알파벳을 사용하는 비영어권 언어의 표현을 용이하게 하기 위해 ASCII의 많은 변형을 개발했습니다. 이러한 변형들 중 일부는 "ASCII 확장"으로 분류할 수 있지만, 일부는 7비트 범위에서 ASCII의 문자 맵을 보존하지 않는 것을 포함하여 모든 변형을 나타내기 위해 이 용어를 잘못 사용합니다. 또한 ASCII 확장은 ASCII로 잘못 표기되었습니다.

7비트 코드

개발 초기부터 ASCII는 국제 문자 코드 표준의 몇 가지 국가적 변형 중 하나일 뿐이었습니다.[56]

다른 국제 표준 기구들은 ASCII와 동일하거나 거의 동일한 ISO 646(1967년)과 같은 문자 인코딩을 승인했으며, 영문 알파벳 외부의 문자와 영국 파운드화(파운드화)의 기호(예: 코드 페이지 1104)와 같은 미국 외부에서 사용되는 기호에 대한 확장을 승인했습니다. ASCII는 미국과 다른 몇몇 국가들의 요구에 적합했기 때문에 거의 모든 국가들이 ASCII의 적응된 버전을 필요로 했습니다. 예를 들어, 캐나다에는 프랑스 문자를 지원하는 자체 버전이 있었습니다.

다른 많은 국가들은 비영어 문자(예: é, ñ, ß, ł), 통화 기호(예: £, ¥) 등을 포함하는 ASCII 변형을 개발했습니다. YUSCII(유고슬라비아)도 참조하십시오.

대부분의 문자를 공통적으로 공유하지만 다른 지역에서 유용한 문자는 "국가적 사용"을 위해 예약된 여러 코드 포인트에 할당됩니다. 그러나 1967년에[57] ASCII-1963이 출판되고 ISO가 국제적인 권고를 처음으로 수용하기까지 4년의 기간은 국가적인 사용 문자에 대한 ASCII의 선택이 세계에 대한 사실상의 표준으로 보이게 만들었습니다. 다른 국가들이 이러한 코드 포인트에 대한 자체 할당을 시작한 후 혼란과 비호환성을 야기했습니다.

ISO/IEC 646은 ASCII와 마찬가지로 7비트 문자 집합입니다. 추가 코드를 사용할 수 없도록 하므로 동일한 코드 포인트가 국가마다 다른 문자를 인코딩합니다. 이스케이프 코드는 텍스트에 적용되는 국가적 변형을 나타내는 것으로 정의되었지만 거의 사용되지 않았기 때문에 어떤 변형으로 작업해야 하는지, 따라서 코드가 어떤 문자를 나타내는지 알 수 없는 경우가 많았고 일반적으로 텍스트 처리 시스템은 어쨌든 하나의 변형만 처리할 수 있었습니다.

ASCII의 괄호와 괄호는 ISO/IEC 646의 다른 국가적 변형에서 악센트 문자에 사용되는 "국가적 사용" 코드 포인트에 할당되었기 때문에, ASCII가 아닌 독일, 프랑스 또는 스웨덴의 프로그래머가 ISO/IEC 646의 국가적 변형을 사용하여 다음과 같은 것을 작성하여 읽어야 했습니다.

ä aÄiÜ = 'Ön'; ü

대신에

{ a[i] = '\n'; }

트리그래프ANSIC의 도입이 늦고 컴파일러에서 일관성이 없는 구현으로 인해 사용이 제한되었지만 이 문제를 해결하기 위해 개발되었습니다. 많은 프로그래머들이 자신의 컴퓨터를 US-ASCII에 보관하고 있었기 때문에 스웨덴어, 독일어 등의 일반 텍스트(예: 이메일 또는 유즈넷)에는 "{, }" 및 유사한 변형이 단어 중간에 포함되어 있어 프로그래머들이 익숙했습니다. 예를 들어, 스웨덴의 프로그래머가 다른 프로그래머에게 점심을 먹으러 가야 하는지 묻는 메일을 보낸다면, "N{jaghar smrg}sar"를 답으로 얻을 수 있습니다. "Näjaghar smörgåsar"는 "샌드위치가 없습니다"를 의미합니다.

일본과 한국에서는 2020년대에 들어서도 백슬래시(5C hex)를 ¥(일본에서는 엔 기호) 또는 ₩(한국에서는 원 기호)로 표기하는 ASCII의 변형이 사용되고 있습니다. 이는 예를 들어 파일 경로 C:\사용자\Smith는 C로 표시됩니다.¥사용자 ¥Smith(일본) 또는 C:₩사용자 ₩스미스(한국).

유럽에서는 방송 TV 자막에 ASCII의 변형인 텔레텍스트 문자 집합을 사용하고 있으며, 이는 World System Teletext에 의해 정의되며, DVB 전송에 텔레텍스트를 내장하기 위한 DVB-TXT 표준을 사용하여 방송됩니다.[58] 자막이 처음에 텔레텍스트용으로 작성되어 변환된 경우, 도출된 자막 형식은 동일한 문자 집합으로 제한됩니다.

8비트 코드

결국 8비트, 16비트, 32비트(이후 64비트) 컴퓨터가 12비트, 18비트, 36비트 컴퓨터를 표준으로 대체하기 시작하면서 8비트 바이트를 사용하여 각 문자를 메모리에 저장하는 것이 일반화되어 ASCII의 확장된 8비트 동족에게 기회를 제공했습니다. 대부분의 경우 이들은 원래의 문자 매핑은 그대로 두되 처음 128자(예: 7비트) 뒤에 추가 문자 정의를 추가하는 ASCII의 진정한 확장자로 개발되었습니다.

일부 국가에서는 현지 언어에서 사용되는 문자를 지원하는 ASCII의 8비트 확장이 개발되었습니다. 예를 들어 인도의 경우 ISCII, 베트남의 경우 VISCII입니다. 카이프로 CP/M 컴퓨터는 그리스 문자에 "상위" 128자를 사용했습니다.[citation needed]

추가 언어를 지원하기 위해 많은 문자를 추가할 필요가 없는 시장에서도 초기 가정용 컴퓨터 시스템 제조업체들은 상자 그림 문자, 세미그래픽 비디오 게임 스프라이트와 같은 추가 문자를 포함하기 위해 ASCII의 8비트 확장을 자체 개발하는 경우가 많았습니다. 종종 이러한 추가 기능은 제어 문자(인덱스 0 ~ 31, 인덱스 127)를 플랫폼별 확장 기능으로 대체하기도 합니다. 다른 경우에는 여분의 비트가 토글링 인버스 비디오와 같은 다른 목적으로 사용되었습니다. 이 접근 방식은 Atari가 개발한 ASCII의 확장인 AtASCII에 의해 사용되었습니다.

대부분의 ASCII 확장은 ASCII-1967(현재 표준)을 기반으로 하지만 일부 확장은 이전 ASCII-1963을 기반으로 합니다. 예를 들어, 코모도어 인터내셔널8비트 시스템을 위해 개발한 PETSCII는 ASCII-1963을 기반으로 합니다. 마찬가지로, 많은 샤프 MZ 문자 집합은 ASCII-1963에 기초하고 있습니다.

IBM은 IBM PC용 코드 페이지 437을 정의하고, 제어 문자를 웃는 얼굴과 같은 그래픽 기호로 바꾸고, 추가 그래픽 문자를 상위 128개 위치에 매핑합니다.[59] DEC-MCS는 블록 그래픽보다 국제 언어를 위해 더 많이 설계된 최초의 확장자 중 하나로 인기 있는 VT220 단말기에 사용하기 위해 다국적 문자 집합(DEC-MCS)을 개발했습니다. OS 로만을 매킨토시용으로 정의하고 어도비는 포스트스크립트용 포스트스크립트 표준 인코딩을 정의했습니다. 두 세트 모두 그래픽 대신 국제 문자, 타이포그래픽 기호, 문장부호를 포함하고 있어 현대 문자 집합에 더 가깝습니다.

ISO/IEC 8859 표준(DEC-MCS에서 파생됨)은 대부분의 시스템이 복사하는 표준을 제공했습니다(정확하게 복사되지 않은 경우에는 적어도 기반이 되었습니다). 마이크로소프트가 설계한 인기 확장 기능인 Windows-1252(종종 ISO-8859-1로 잘못 표기됨)는 기존 텍스트 인쇄에 필요한 타이포그래픽 구두점을 추가했습니다. ISO-8859-1, 윈도우-1252, 그리고 원래의 7비트 ASCII는 2008년 UTF-8이 이들을 앞지르기 전까지 월드 와이드 웹에서 가장 흔한 문자 인코딩이었습니다.[54]

ISO/IEC 4873은 7비트 ASCII 인코딩을 8비트 시스템으로 확장하기 위해 80-9F 16진수 범위에 정의된 32개의 제어 코드를 추가로 도입했습니다.[60]

유니코드

유니코드와 ISO/IEC 10646 UCS(Universal Character Set)는 훨씬 더 광범위한 문자 배열을 가지고 있으며 다양한 인코딩 형태가 많은 환경에서 ISO/IEC 8859와 ASCII를 빠르게 대체하기 시작했습니다. ASCII는 128자로 제한되지만 유니코드와 UCS는 고유 식별(코드 포인트라고 하는 자연수 사용)과 인코딩(각각 UTF-8, UTF-16, UTF-32라고 하는 8비트, 16비트 또는 32비트 이진 형식)의 개념을 분리하여 더 많은 문자를 지원합니다.

ASCII는 유니코드(1991) 문자 집합에 처음 128개의 기호로 통합되었으므로 7비트 ASCII 문자는 두 집합에서 동일한 숫자 코드를 갖습니다. 이를 통해 UTF-8은 7비트 ASCII와 하위 호환성을 갖는데, 이는 ASCII 문자만을 포함하는 UTF-8 파일이 동일한 문자 시퀀스를 포함하는 ASCII 파일과 동일하기 때문입니다. 더욱 중요한 것은 7비트 ASCII 문자만 특수한 것으로 인식하고 가장 높은 비트 집합을 가진 바이트를 변경하지 않는 소프트웨어(ISO-8859-1과 같은 8비트 ASCII 확장을 지원하기 위해 흔히 하는 것처럼)가 UTF-8 데이터를 변경하지 않고 보존하기 때문에 순방향 호환성이 보장된다는 것입니다.[61]

참고 항목

메모들

  1. ^ a b c d e 7비트 ASCII 문자 집합의 128자는 스틱 0~7이라고 하는 8개의 16자 그룹으로 나뉘며, 가장 중요한 3개의 비트와 연관됩니다.[14] 문자 맵의 수평 또는 수직 표현에 따라 스틱은 테이블 행 또는 열과 일치합니다.
  2. ^ "Control Pictures" 영역 U+2400 ~ U+2421의 유니코드 문자는 제어 문자가 의도한 기능을 수행하도록 하는 대신 인쇄하거나 표시해야 할 때 사용할 수 있도록 예약되어 있습니다. 일부 브라우저에서는 이러한 정보가 제대로 표시되지 않을 수 있습니다.
  3. ^ 캐럿 표기법은 터미널의 제어 문자를 나타낼 때 자주 사용됩니다. 대부분의 텍스트 단말기에서 두 번째 문자를 입력하는 동안 키를 누른 상태에서 컨트롤 문자를 입력합니다. 예를 들어, 시프트 키가 필요하지 않을 때가 있습니다. ^@ Ctrl과 2만으로 타이핑할 수 있습니다.
  4. ^ C 프로그래밍 언어와 자바, 펄과 같은 영향을 받는 많은 다른 언어의 캐릭터 이스케이프 시퀀스(모든 구현이 반드시 모든 이스케이프 시퀀스를 지원하는 것은 아님).
  5. ^ 단일 바이트 문자 입력은 팔진수 값에서 벗어나 지원됩니다. 그러나 C-strings에서 NULL의 역할 때문에 이 경우는 특별히 사용됩니다.
  6. ^ 일부 시스템에서 키를 눌러 백스페이스 문자를 입력할 수도 있습니다.
  7. ^ a b 백스페이스의 모호성은 키보드의 주된 용도가 컴퓨터에 연결되지 않은 상태에서 수동으로 종이 테이프를 펀치하는 것이라고 가정하고 설계된 초기 단말기 때문입니다. 이전 문자를 삭제하려면 기계적이고 단순한 이유로 펀치 자체의 버튼이었고 키보드가 아닌 종이 테이프 펀치를 백업한 다음 루브아웃 문자를 입력해야 했습니다. 따라서 그들은 뒷공간을 위해 타자기에 사용되는 위치에 키를 생성하는 루블아웃을 배치했습니다. 시스템이 이러한 터미널을 사용하고 명령줄 편집을 제공할 때, 백스페이스를 수행하기 위해 "rubout" 코드를 사용해야 했고, 백스페이스 문자를 해석하지 않는 경우가 많았습니다(백스페이스의 경우 "^H"를 echo할 수도 있습니다). 종이 테이프용으로 설계되지 않은 다른 단말기는 이 위치의 키를 백스페이스로 만들었고, 이들을 위해 설계된 시스템은 해당 문자를 백업하는 데 사용되었습니다. 삭제 코드가 종종 백스페이스 효과를 발생시켰기 때문에, 이것은 또한 단말기 제조업체들이 모든 키가 삭제 문자 이외의 다른 것을 생성하도록 강요했습니다.
  8. ^ 대부분의 시스템에서 키를 눌러 Tab 문자를 입력할 수도 있습니다.
  9. ^ 대부분의 시스템에서 or 키를 눌러 Carriage Return 문자를 입력할 수도 있습니다.
  10. ^ \e 이스케이프 시퀀스ISO C 및 기타 많은 언어 사양의 일부가 아닙니다. 그러나 GCC를 포함한 여러 컴파일러에서 이해하고 있습니다.
  11. ^ 일부 시스템에서 키를 눌러 탈출 문자를 입력할 수도 있습니다.
  12. ^ ^^ +^를 의미합니다("Ctrl" 및 캐럿 키를 누릅니다).
  13. ^ 일부 시스템에서 키를 눌러 Delete 문자를 입력할 수도 있습니다.
  14. ^ 출력된 문자는 다음과 같습니다.
     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ }~

참고문헌

  1. ^ ANSI (1975-12-01). ISO-IR-6: ASCII Graphic character set (PDF). ITSCJ/IPSJ.
  2. ^ a b "Character Sets". Internet Assigned Numbers Authority (IANA). 2007-05-14. Retrieved 2019-08-25.
  3. ^ a b c d e f g h i j k l m n o p q r s Mackenzie, Charles E. (1980). Coded Character Sets, History and Development (PDF). The Systems Programming Series (1 ed.). Addison-Wesley Publishing Company, Inc. pp. 6, 66, 211, 215, 217, 220, 223, 228, 236–238, 243–245, 247–253, 423, 425–428, 435–439. ISBN 978-0-201-14460-4. LCCN 77-90165. Archived (PDF) from the original on May 26, 2016. Retrieved August 25, 2019.
  4. ^ a b Brandel, Mary (1999-07-06). "1963: The Debut of ASCII". CNN. Archived from the original on 2013-06-17. Retrieved 2008-04-14.
  5. ^ a b c d "American Standard Code for Information Interchange, ASA X3.4-1963". American Standards Association (ASA). 1963-06-17. Retrieved 2020-06-06.
  6. ^ a b c USA Standard Code for Information Interchange, USAS X3.4-1967 (Technical report). United States of America Standards Institute (USASI). 1967-07-07.
  7. ^ Jennings, Thomas Daniel (2016-04-20) [1999]. "An annotated history of some character codes or ASCII: American Standard Code for Information Infiltration". Sensitive Research (SR-IX). Retrieved 2020-03-08.
  8. ^ a b c d American National Standard for Information Systems — Coded Character Sets — 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII), ANSI X3.4-1986 (Technical report). American National Standards Institute (ANSI). 1986-03-26.
  9. ^ a b Cerf, Vint (1969-10-16). ASCII format for Network Interchange. Network Working Group. doi:10.17487/RFC0020. RFC 20. Retrieved 2016-06-13. (NB. 도입부를 제외하고 USAS X3.4-1968과 거의 동일한 문구.)
  10. ^ Barry Leiba (2015-01-12). "Correct classification of RFC 20 (ASCII format) to Internet Standard". IETF.
  11. ^ Shirley, R. (August 2007). Internet Security Glossary, Version 2. doi:10.17487/RFC4949. RFC 4949. Retrieved 2016-06-13.
  12. ^ Maini, Anil Kumar (2007). Digital Electronics: Principles, Devices and Applications. John Wiley and Sons. p. 28. ISBN 978-0-470-03214-5. In addition, it defines codes for 33 nonprinting, mostly obsolete control characters that affect how the text is processed.
  13. ^ Bukstein, Ed (July 1964). "Binary Computer Codes and ASCII". Electronics World. 72 (1): 28–29. Archived from the original on 2016-03-03. Retrieved 2016-05-22.
  14. ^ a b c d e f Bemer, Robert William (1980). "Chapter 1: Inside ASCII" (PDF). General Purpose Software. Best of Interface Age. Vol. 2. Portland, OR, US: dilithium Press. pp. 1–50. ISBN 978-0-918398-37-6. LCCN 79-67462. Archived from the original on 2016-08-27. Retrieved 2016-08-27, 출처:
  15. ^ 간략한 보고서: 1963년 5월 13일~15일 신전신 알파벳에 관한 CCITT 작업당 회의.
  16. ^ ISO/TC/97/SC 2 보고서 – 1963년 10월 29일-31일 회의.
  17. ^ 태스크 그룹 X3.2.4에 대한 보고서, 1963년 6월 11일, 워싱턴 D.C. 펜타곤 빌딩.
  18. ^ 과제단 X3.2.4, 1963년 12월 17일, 18일 제8호 회의보고
  19. ^ a b c Winter, Dik T. (2010) [2003]. "US and International standards: ASCII". Archived from the original on 2010-01-16.
  20. ^ a b USA Standard Code for Information Interchange, USAS X3.4-1968 (Technical report). United States of America Standards Institute (USASI). 1968-10-10.
  21. ^ a b c d e f g Salste, Tuomas (January 2016). "7-bit character sets: Revisions of ASCII". Aivosto Oy. urn:nbn:fi-fe201201011004. Archived from the original on 2016-06-13. Retrieved 2016-06-13.
  22. ^ "Information". Scientific American (special edition). 215 (3). September 1966. JSTOR e24931041.
  23. ^ Korpela, Jukka K. (2014-03-14) [2006-06-07]. Unicode Explained – Internationalize Documents, Programs, and Web Sites (2nd release of 1st ed.). O'Reilly Media, Inc. p. 118. ISBN 978-0-596-10121-3.
  24. ^ ANSI INCITS 4-1986 (R2007): American National Standard for Information Systems – Coded Character Sets – 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII), 2007 [1986]
  25. ^ "INCITS 4-1986[R2012]: Information Systems - Coded Character Sets - 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII)". 2012-06-15. Archived from the original on 2020-02-28. Retrieved 2020-02-28.
  26. ^ "INCITS 4-1986[R2017]: Information Systems - Coded Character Sets - 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII)". 2017-11-02 [2017-06-09]. Archived from the original on 2020-02-28. Retrieved 2020-02-28.
  27. ^ Bit Sequencing of the American National Standard Code for Information Interchange in Serial-by-Bit Data Transmission, American National Standards Institute (ANSI), 1966, X3.15-1966
  28. ^ "BruXy: Radio Teletype communication". 2005-10-10. Archived from the original on 2016-04-12. Retrieved 2016-05-09. The transmitted code use International Telegraph Alphabet No. 2 (ITA-2) which was introduced by CCITT in 1924.
  29. ^ a b Smith, Gil (2001). "Teletype Communication Codes" (PDF). Baudot.net. Archived (PDF) from the original on 2008-08-20. Retrieved 2008-07-11.
  30. ^ Sawyer, Stanley A.; Krantz, Steven George (1995). A TeX Primer for Scientists. CRC Press. p. 13. Bibcode:1995tps..book.....S. ISBN 978-0-8493-7159-2. Archived from the original on 2016-12-22. Retrieved 2016-10-29.
  31. ^ Savard, John J. G. "Computer Keyboards". Archived from the original on 2014-09-24. Retrieved 2014-08-24.
  32. ^ "ASCIIbetical definition". PC Magazine. Archived from the original on 2013-03-09. Retrieved 2008-04-14.
  33. ^ Resnick, Peter W., ed. (April 2001). Internet Message Format. doi:10.17487/RFC2822. RFC 2822. Retrieved 2016-06-13. (NB. NO-WS-CTL.)
  34. ^ McConnell, Robert; Haynes, James; Warren, Richard. "Understanding ASCII Codes". Archived from the original on 2014-02-27. Retrieved 2014-05-11.
  35. ^ Barry Margolin (2014-05-29). "Re: editor and word processor history (was: Re: RTF for emacs)". help-gnu-emacs (Mailing list). Archived from the original on 2014-07-14. Retrieved 2014-07-11.
  36. ^ a b "PDP-6 Multiprogramming System Manual" (PDF). Digital Equipment Corporation (DEC). 1965. p. 43. Archived (PDF) from the original on 2014-07-14. Retrieved 2014-07-10.
  37. ^ a b "PDP-10 Reference Handbook, Book 3, Communicating with the Monitor" (PDF). Digital Equipment Corporation (DEC). 1969. p. 5-5. Archived (PDF) from the original on 2011-11-15. Retrieved 2014-07-10.
  38. ^ "Help - GNU Emacs Manual". Archived from the original on 2018-07-11. Retrieved 2018-07-11.
  39. ^ Tim Paterson (2007-08-08). "Is DOS a Rip-Off of CP/M?". DosMan Drivel. Archived from the original on 2018-04-20. Retrieved 2018-04-19.
  40. ^ Ossanna, J. F.; Saltzer, J. H. (November 17–19, 1970). "Technical and human engineering problems in connecting terminals to a time-sharing system" (PDF). Proceedings of the November 17–19, 1970, Fall Joint Computer Conference (FJCC). AFIPS Press. pp. 355–362. Archived (PDF) from the original on 2012-08-19. Retrieved 2013-01-29. Using a "new-line" function (combined carriage-return and line-feed) is simpler for both man and machine than requiring both functions for starting a new line; the American National Standard X3.4-1968 permits the line-feed code to carry the new-line meaning.
  41. ^ O'Sullivan, T. (1971-05-19). TELNET Protocol. Internet Engineering Task Force (IETF). pp. 4–5. doi:10.17487/RFC0158. RFC 158. Retrieved 2013-01-28.
  42. ^ Neigus, Nancy J. (1973-08-12). File Transfer Protocol. Internet Engineering Task Force (IETF). doi:10.17487/RFC0542. RFC 542. Retrieved 2013-01-28.
  43. ^ Postel, Jon (June 1980). File Transfer Protocol. Internet Engineering Task Force (IETF). doi:10.17487/RFC0765. RFC 765. Retrieved 2013-01-28.
  44. ^ "EOL translation plan for Mercurial". Mercurial. Archived from the original on 2016-06-16. Retrieved 2017-06-24.
  45. ^ Bernstein, Daniel J. "Bare LFs in SMTP". Archived from the original on 2011-10-29. Retrieved 2013-01-28.
  46. ^ CP/M 1.4 Interface Guide (PDF). Digital Research. 1978. p. 10. Archived (PDF) from the original on 2019-05-29. Retrieved 2017-10-07.
  47. ^ Haynes, Jim (2015-01-13). "First-Hand: Chad is Our Most Important Product: An Engineer's Memory of Teletype Corporation". Engineering and Technology History Wiki (ETHW). Retrieved 2023-02-14. There was the change from 1961 ASCII to 1968 ASCII. Some computer languages used characters in 1961 ASCII such as up arrow and left arrow. These characters disappeared from 1968 ASCII. We worked with Fred Mocking, who by now was in Sales at Teletype, on a type cylinder that would compromise the changing characters so that the meanings of 1961 ASCII were not totally lost. The underscore character was made rather wedge-shaped so it could also serve as a left arrow.
  48. ^ Bemer, Robert William. "Bemer meets Europe (Computer Standards) – Computer History Vignettes". Trailing-edge.com. Archived from the original on 2013-10-17. Retrieved 2008-04-14. (NB. Bemer는 그 당시 IBM에 고용되어 있었습니다.)
  49. ^ "Robert William Bemer: Biography". 2013-03-09. Archived from the original on 2016-06-16.
  50. ^ Johnson, Lyndon Baines (1968-03-11). "Memorandum Approving the Adoption by the Federal Government of a Standard Code for Information Interchange". The American Presidency Project. Archived from the original on 2007-09-14. Retrieved 2008-04-14.
  51. ^ Richard S. Shuford (1996-12-20). "Re: Early history of ASCII?". Newsgroup: alt.folklore.computers. Usenet: Pine.SUN.3.91.961220100220.13180C-100000@duncan.cs.utk.edu.
  52. ^ Folts, Harold C.; Karp, Harry, eds. (1982-02-01). Compilation of Data Communications Standards (2nd revised ed.). McGraw-Hill Inc. ISBN 978-0-07-021457-6.
  53. ^ Dubost, Karl (2008-05-06). "UTF-8 Growth on the Web". W3C Blog. World Wide Web Consortium. Archived from the original on 2016-06-16. Retrieved 2010-08-15.
  54. ^ a b Davis, Mark (2008-05-05). "Moving to Unicode 5.1". Official Google Blog. Archived from the original on 2016-06-16. Retrieved 2010-08-15.
  55. ^ Davis, Mark (2010-01-28). "Unicode nearing 50% of the web". Official Google Blog. Archived from the original on 2016-06-16. Retrieved 2010-08-15.
  56. ^ "특정 기준", R. W. Reach의 메모 첨부, "X3-2 회의 – 9월 14일 및 15일", 1961년 9월 18일
  57. ^ Maréchal, R. (1967-12-22), ISO/TC 97 – Computers and Information Processing: Acceptance of Draft ISO Recommendation No. 1052
  58. ^ "DVB-TXT (Teletext) Specification for conveying ITU-R System B Teletext in DVB bitstreams".
  59. ^ Technical Reference (PDF). Personal Computer Hardware Reference Library (First ed.). IBM. August 1981. Appendix C. Of Characters Keystrokes and Color.
  60. ^ The Unicode Consortium (2006-10-27). "Chapter 13: Special Areas and Format Characters" (PDF). In Allen, Julie D. (ed.). The Unicode standard, Version 5.0. Upper Saddle River, New Jersey, US: Addison-Wesley Professional. p. 314. ISBN 978-0-321-48091-0. Archived (PDF) from the original on 2022-10-09. Retrieved 2015-03-13.
  61. ^ "utf-8(7) – Linux manual page". Man7.org. 2014-02-26. Archived from the original on 2014-04-22. Retrieved 2014-04-21.

더보기

외부 링크