¿A qué estándar ANSI se refiere Joel?

¿A qué estándar ANSI se refiere Joel?

Estaba releyendo la clásica publicación del blog de Joel Spolsky.Lo mínimo absoluto que todo desarrollador de software debe saber absolutamente y positivamente sobre Unicode y los conjuntos de caracteres (¡sin excusas!)y noté este pasaje:

Finalmente, este OEM libre para todos se codificó enel estándar ANSI (el énfasis es mío).En el estándar ANSI, todos estaban de acuerdo sobre qué hacer por debajo de 128, que era más o menos lo mismo que ASCII, pero había muchas maneras diferentes de manejar los caracteres desde 128 en adelante, dependiendo de dónde vivías. Estos diferentes sistemas fueron llamadospáginas de códigos.

¿A qué estándar ANSI se refiere este texto? Sin duda, el Instituto Nacional Estadounidense de Estándares ha publicado una serie de estándares (después de todo, eso es lo que realmentehacer),pero no he podido determinar cuál.

Mi suposición más cercana a lo que esto podría aludir es que en realidad se trata de ISO-8859, y tal vez este documento comenzó como un estándar estadounidense antes de ser adoptado como estándar internacional; pero eso no tiene sentido en el contexto de estandarizar "páginas de códigos" y juegos de caracteres "OEM".

WikipediaPágina de códigoartículomenciona un estándar de IBM y señala que IANA mantiene un registro de asignaciones de páginas de códigos, pero obviamente ninguna de ellas es ANSI.

Tengo entendido que ANSI no ha estandarizado ningún juego de caracteres moderno de 8 bits, y que "ANSI" en este contexto generalmente se refiere a la terminología confusa ahora abandonada de Microsoft (donde "ANSI" en un momento aparentemente se usaba para significar algo como el actual página de códigos seleccionada).

¿Hay algún estándar que estoy pasando por alto? ¿O simplemente hay (jadeo) un error en el blog de Joel?

Respuesta1

Esto es un rompecabezas, así que reunamos todos los hechos conocidos. Estamos buscando:

  • Un estándar ANSI
  • Acerca de los conjuntos de caracteres
  • Que especificaba los primeros 128 puntos de código.
  • Y fue la base para las páginas de códigos y todos los estándares siguientes para conjuntos de caracteres.

El resultado para mí es sólo uno: el Estándar ASCII. Creo que este fue el primer estándar de ANSI que especificó los primeros 128 puntos de código y, de hecho, también el último.

Aunque ASCII evolucionó en detalles más adelante, su desarrollo principal comenzó en 1963. Este estándar fue desarrollado por la rama estadounidense de la Organización Internacional de Normalización (ISO), que es ANSI. Debido a que esta norma omitía la referencia a caracteres no americanos, y como las páginas de códigos que siguieron e intentaron responder a esa pregunta eran un verdadero caos desorganizado, pudiendo ponerse de acuerdo sólo en la parte ASCII, el trabajo de estandarización fue asumido por la organización internacional de la propia ISO.

Históricamente hablando, la Estándar ISO/IEC 8859 Llegó entre ASCII y las páginas de códigos, pero este no era un estándar ANSI, sino elaborado por la ISO.

"Páginas de códigos ANSI" era un nombre inapropiado para páginas de códigos de Windowsque fueron creados por Microsoft y no por ANSI. Una variante fue la página de códigos de Windows-1252, que más tarde pasó a ser conocido como ISO/CEI 8859-1.

La historia real de los conjuntos de caracteres es bastante complicada y se requeriría un extenso trabajo de detective para establecer calendarios, influencias cruzadas y los estándares o definiciones de facto resultantes. Pero todo comenzó con ASCII, que creó una base para toda la evolución futura que culminó en Unicode y UTF-8.

Respuesta2

De acuerdo asu página de wikipedialos caracteres de control C0 y C1 están definidos en ANSI x3.4.

Estas incluyen las secuencias de escape para el formato de texto extendido que utilizanISO 2022yISO 8859para permitir conjuntos de caracteres internacionales de varios bytes.

Por ejemplo, ESC $ @ y ESC $ B cambian a diferentes codificaciones japonesas de 2 bytes, mientras que ESC ( B vuelve a cambiar a US-ASCII. Estos pueden ser estándares ISO (o ECMA), pero usan códigos de control ANSI, por lo que probablemente sea un nombre inapropiado parcial.

Respuesta3

Sin el aporte de Joel, no podemos estar seguros, pero basándonos en los otros intentos de respuesta aquí y los defectos que percibo en ellos, permítanme presentar lo que considero una especulación obvia y simple:

No existe un estándar ANSI real aquí y Joel está pasando por alto las cosas.

Definitivamente es menos seguro lo que se está resumiendo y posiblemente mezclado aquí exactamente, pero supongo que se refiere al desarrollo de páginas de códigos de Windows, que durante un tiempo fueron denominadas "páginas de códigos ANSI" por Microsoft, aunque nunca existieron. Hubo alguna conexión tangible con el Instituto Nacional Estadounidense de Estándares, posiblemente fuera de un esfuerzo finalmente infructuoso para estandarizar la página de códigos 1252 de Windows como un "ASCII extendido" con varios caracteres acentuados para algunos idiomas de Europa occidental y símbolos útiles para la composición tipográfica y expresiones matemáticas simples. Según algunas fuentes, esto es lo que finalmente resultó enISO/CEI 8859-1y eventualmente la familia más grande deISO 8859estándares para juegos de caracteres de 8 bits para varias regiones (ver tambiénECMA-94).

Para que conste, la ASA y luegoComité ANSI X3fue responsable del estándar ASCII (ASA X3.4, luego ANSI X3.4, luego ISO 646), así como del estándar X3.64 para secuencias de control de pantalla ASCII para terminales de visualización. Las publicaciones notables de este comité a fines de la década de 1980 incluyen una propuesta para el lenguaje C y algo llamado "Pascal extendido", así como la interfaz de hardware SCSI, pero no pude encontrar nada relacionado con los juegos de caracteres de este período.

Respuesta4

https://en.wikipedia.org/wiki/ASCII#History

Según esta lista, el primer estándar ANSI que definió ASCII fue ANSI X3.4-1977.

información relacionada