
나는 Joel Spolsky의 고전적인 블로그 게시물을 다시 읽고 있었습니다.모든 소프트웨어 개발자가 유니코드 및 문자 집합에 대해 절대적으로, 적극적으로 알아야 하는 최소한의 정보(변명의 여지가 없습니다!)그리고 다음 구절을 발견했습니다:
결국 이 OEM은 무료로 코드화되었습니다.ANSI 표준 (강조).ANSI 표준에서는 128 이하에서 무엇을 해야 하는지에 대해 모든 사람이 동의했는데 이는 ASCII와 거의 동일했지만 거주 지역에 따라 128 이상의 문자를 처리하는 방법이 많이 있었습니다. 이러한 다양한 시스템을 호출했습니다.코드 페이지.
이 텍스트는 어떤 ANSI 표준을 참조합니까? 확실히 미국표준협회(American National Standards Institute)는 여러 가지 표준을 발표했습니다.하다),그러나 나는 어느 것이 무엇인지 알 수 없었습니다.
이것이 무엇을 암시하는지 가장 가까운 추측은 이것이 실제로 ISO-8859에 대해 이야기하고 있다는 것입니다. 아마도 이 문서는 국제 표준으로 채택되기 전에 미국 표준으로 시작되었을 것입니다. 그러나 이는 "코드 페이지"와 "OEM" 문자 집합을 표준화하는 맥락에서는 의미가 없습니다.
위키피디아의코드 페이지기사IBM 표준을 언급하고 IANA가 코드 페이지 매핑 레지스트리를 유지 관리하지만 둘 다 ANSI가 아니라는 점을 지적합니다.
제가 이해한 바에 따르면 ANSI는 최신 8비트 문자 집합을 표준화하지 않았으며 이 맥락에서 "ANSI"는 일반적으로 현재는 사용되지 않는 Microsoft의 혼란스러운 용어("ANSI"는 당시에는 현재와 같은 의미로 사용된 것으로 보입니다)를 의미합니다. 선택한 코드 페이지).
내가 간과하고 있는 표준이 있나요? 아니면 단순히 Joel의 블로그에 오류가 있는 것일까요?
답변1
이것은 퍼즐이므로 알려진 사실을 모두 모아 봅시다. 우리는 ~을 찾고있다:
- ANSI 표준
- 문자 세트 정보
- 처음 128개의 코드 포인트를 지정했습니다.
- 그리고 코드 페이지와 문자 집합에 대한 모든 후속 표준의 기초가 되었습니다.
나에게 있어서 결과는 단 하나이다. ASCII 표준. 나는 이것이 처음 128개의 코드 포인트를 지정하는 ANSI의 첫 번째 표준이자 실제로 마지막 표준이라고 생각합니다.
ASCII는 나중에 세부적으로 발전했지만 주요 개발은 1963년에 시작되었습니다. 이 표준은 국제 표준화 기구(ISO)의 미국 지부인 ANSI에서 개발되었습니다. 이 표준은 미국 이외의 문자에 대한 참조를 생략했고, 그 질문에 답하려고 시도한 코드 페이지는 정말 무질서했고 ASCII 부분에서만 동의할 수 있었기 때문에 표준화 작업은 ISO 자체의 국제기구.
역사적으로 말하면, ISO/IEC 8859 표준 ASCII와 코드 페이지 사이에 도착했지만 이는 ANSI 표준이 아니었고 오히려 ISO에서 정교하게 만들어졌습니다.
"ANSI 코드 페이지"는 잘못된 이름이었습니다. Windows 코드 페이지ANSI가 아닌 Microsoft에서 만든 것입니다. 한 가지 변형은 다음의 코드 페이지였습니다. 윈도우-1252, 나중에 다음과 같이 알려지게 되었습니다. ISO/IEC 8859-1.
문자 세트의 실제 역사는 매우 복잡하며 시간표, 상호 영향 및 그에 따른 사실상의 표준이나 정의를 설정하려면 광범위한 탐정 작업이 필요합니다. 그러나 이 모든 것은 ASCII에서 시작되었으며, 이는 유니코드와 UTF-8로 정점을 이루는 미래의 모든 진화의 기반을 마련했습니다.
답변2
에 따르면그들의 위키피디아 페이지C0 및 C1 제어 문자는 ANSI x3.4에 정의되어 있습니다.
여기에는 다음에서 사용되는 확장된 텍스트 서식을 위한 이스케이프 시퀀스가 포함됩니다.ISO 2022그리고ISO 8859다중 바이트 국제 문자 집합을 허용합니다.
예를 들어 ESC $ @ 및 ESC $ B는 다른 일본어 2바이트 인코딩으로 전환하는 반면 ESC( B는 US-ASCII로 다시 전환합니다. 이는 ISO(또는 ECMA) 표준일 수 있지만 ANSI 제어 코드를 사용하므로 이는 아마도 부분적인 잘못된 명칭.
답변3
Joel의 의견이 없으면 확실히 알 수 없습니다. 하지만 여기에서 시도한 다른 답변과 제가 인식한 결함을 바탕으로 명백하고 간단한 추측으로 간주되는 내용을 제출하겠습니다.
여기에는 실제 ANSI 표준이 없으며 Joel은 이를 얼버무리고 있습니다.
여기서 정확히 요약되고 혼동될 수 있는 내용은 확실히 확실하지 않습니다. 그러나 내 추측으로는 그는 Windows 코드 페이지의 개발에 대해 이야기하고 있는 것 같습니다. Windows 코드 페이지는 Microsoft에서 "ANSI 코드 페이지"라고 불렀습니다. Windows 코드 페이지 1252를 일부 서유럽 언어에 대한 다양한 악센트 문자와 조판 및 간단한 수학적 표현에 유용한 기호가 있는 "확장 ASCII"로 표준화하려는 궁극적으로 실패한 노력 외에는 미국 국립 표준 연구소(American National Standards Institute)와의 실질적인 연결이 있었습니다. 일부 소식통에 따르면 이것이 궁극적으로 다음과 같은 결과를 가져왔습니다.ISO/IEC 8859-1그리고 결국에는 더 큰 가족이ISO 8859다양한 지역의 8비트 문자 집합 표준(참조:ECMA-94).
참고로 ASA와 그 다음에는ANSI 위원회 X3ASCII 표준(ASA X3.4, ANSI X3.4, ISO 646)과 디스플레이 터미널의 ASCII 화면 제어 시퀀스에 대한 X3.64 표준을 담당했습니다. 1980년대 후반에 이 위원회에서 발행한 주목할만한 출판물에는 C 언어에 대한 제안과 "확장 파스칼", SCSI 하드웨어 인터페이스가 포함되어 있지만 이 시기의 문자 집합과 관련된 내용은 전혀 찾을 수 없습니다.
답변4
https://en.wikipedia.org/wiki/ASCII#History
이 목록에 따르면 ASCII를 정의하는 최초의 ANSI 표준은 ANSI X3.4-1977이었습니다.