O ASCII Extended é uma norma para a codificação de caracteres por meio de números binários que utiliza 8 bits para cada código, propiciando 128 códigos numerados de 128 a 255 (80H até FFH). Ficam associados a conjuntos de caracteres que podem variar conforme o fabricante do computador e a software house. Portanto, enquanto o conjunto de caracteres ASCII standard é um padrão universal para os equipamentos e programas, os caracteres estendidos só poderão ser interpretados correctamente por programas projectados especialmente para fazê-lo. O uso do termo extended é muitas vezes criticado, porque pode ser erradamente interpretado que o padrão ASCII foi actualizado para incluir mais do que 128 caracteres ou que o termo identifica inequivocamente uma única codificação, sendo que ambos são falsos.
Motivos para estender
Como o número de símbolos usados em línguas naturais comuns, bem como em matemática (· ÷ × ≠ ≥ ≈ π etc.) e muitas linguagens de programação e aplicações técnicas excede, em muito, os 96 (128-32) códigos ASCII imprimíveis, muitas extensões têm sido usadas. Desde que o ASCII é um código de sete bits e a maioria dos computadores manipulam dados de oito bits, muitas extensões usam os 128 códigos adicionais disponíveis usando todos os oito bits de cada byte. Isso ajuda a incluir muitas línguas em ASCII, mas ainda não é suficiente para suportar todas as línguas dos países em que os computadores são vendidos, por isso mesmo, essas extensões de oito bits tinha que ter variantes locais.
Extensões proprietárias
Várias extensões proprietárias apareceram em computadores de grande porte e em minicomputadores, especialmente nas universidades. Atari e Commodore adicionaram muitos símbolos gráficos ao seu ASCII não-padrão (Respectivamente, ATASCII e PETSCII, baseado no padrão ASCII original de 1963).
A IBM introduziu os códigos ASCII estendidos de oito bits no PC IBM original e mais tarde produziu variações para as diferentes línguas e culturas. Em páginas de código ASCII compatíveis, os 128 caracteres inferiores mantiveram os seus valores US-ASCII padrão, e diferentes páginas (ou conjuntos de caracteres) poderiam ser disponibilizadas nos 128 caracteres superiores. Os computadores DOS (Disk Operating System) construídos para o mercado norte-americano, por exemplo, usou a página de código 437, que incluiu caracteres acentuados necessários para o francês, alemão, e algumas outras línguas europeias, bem como alguns caracteres de desenho. O conjunto de caracteres maior tornou possível a criação de documentos numa combinação de idiomas como o Inglês e o Francês (embora computadores franceses costumem usar página de código 850), mas não, por exemplo, em Inglês e grego (que exigia página de código 737).
A Apple Computer introduziu os seus próprios códigos de oito bits ASCII estendidos em Mac OS, como o Mac OS Roman.
A Digital Equipment Corporation desenvolveu o conjunto de caracteres multinacional, que teve menos caracteres, mas mais combinações, com base em projectos de versões do ISO 8859.
Codificações de caracteres multi-byte
Há codificações de caracteres multi-byte (codificação de caracteres que podem lidar com mais de 256 caracteres diferentes) que também são ASCII estendido. Isso significa que todos os caracteres ASCII são codificados com um único byte, com o valor que é usado em ASCII para codificar esse caracter. UTF-8 é uma codificação de caracteres, assim como alguns codificações em código unix estendido. ISO/IEC 6937 não é ASCII estendido, como o valor do código 0x24 corresponde ao sinal de moeda em vez do cifrão ($), mas é uma versão estendida da versão internacional de referência do ISO 646.
Uso em linguagens de programação
Para as linguagens de programação e linguagens de documentos, tais como C e HTML, o princípio do ASCII estendido é importante, uma vez que permite muitas codificações diferentes e, portanto, muitas línguas humanas a serem suportadas.
O princípio do ASCII estendido significa que:
- todos os bytes ASCII (0x00 a 0x7F) têm o mesmo significado em todas as variantes do ASCII estendido,
- bytes que não são ASCII bytes são usados somente para o texto livre e não para as tags, palavras-chave ou outros recursos que têm um significado especial para o software.