Algo que me ha confundido durante mucho tiempo es que tanto software utiliza los términos "charset" y "codificación" como sinónimos.
Cuando las personas se refieren a una "codificación" unicode, siempre se refieren a un conjunto de reglas para representar caracteres unicode como una secuencia de bytes, como ASCII o UTF-8. Esto parece razonable e intuitivo; la idea es que está "codificando" esos caracteres como bytes utilizando el conjunto de reglas especificado.
Dado que esos conjuntos de reglas a veces solo brindan la capacidad de "codificar" algún subconjunto de todos los caracteres unicode, puede imaginarse que un "conjunto de caracteres" - abreviatura de 'conjunto de caracteres' - simplemente significaría un conjunto de caracteres unicode, sin importar cómo esos caracteres están codificados. Por lo tanto, una codificación implicaría un conjunto de caracteres (una codificación como ASCII, que solo tiene reglas para codificar 128 caracteres, estaría asociada con el conjunto de caracteres de esos 128 caracteres) pero un conjunto de caracteres no necesariamente implica una codificación (por ejemplo, UTF-8, UTF -16 y UTF-32 son codificaciones diferentes pero pueden codificar el mismo conjunto de caracteres).
Sin embargo, y aquí está el quid de mi pregunta, el uso en el mundo real de la palabra "charset" no coincide con lo que implicaría la construcción de la palabra. Casi siempre se usa para significar "codificación".
Por ejemplo:
- El
charset
atributo en HTML se usa para especificar una codificación Charset
s en Java son codificacionescharset
sycharacter sets
MySQL son, una vez más, codificaciones
¿Qué edad tiene este curioso (ab) uso del lenguaje, y cómo surgió esta definición contra-intuitiva de 'juego de caracteres'? ¿Acaso se origina en una época en la que realmente existía , en la práctica, un mapeo uno a uno entre las codificaciones en uso y los conjuntos de caracteres que admitían? ¿O hubo algún estándar o especificación particularmente influyente que dictara esta definición de la palabra?
charset
es anterior al estándar Unicode, por lo que si bien podría no haber sido un "mapeo uno a uno", los caracteres requeridos para un documento tendieron a forzar la elección de la codificación. Pero no tengo tiempo para investigar la historia real de la palabra ...