Unicode e MBCS
A biblioteca MFC (Microsoft Foundation Classes), a biblioteca de tempo de execução C para Visual C++ e o ambiente de desenvolvimento do Visual C++ estão habilitados para ajudar na sua programação internacional. Elas fornecem:
Suporte para o padrão Unicode no Windows. Unicode é o padrão atual e deve ser usado sempre que possível.
Unicode é uma codificação de caracteres de 16 bits, que fornece codificações suficientes para todos os idiomas. Todos os caracteres ASCII estão incluídos no Unicode como caracteres largos.
Suporte para uma forma de MBCS (conjunto de caracteres multibyte) chamada DBCS (conjunto de caracteres de byte duplo) em todas as plataformas.
Os caracteres DBCS são compostos por 1 ou 2 bytes. Alguns intervalos de bytes são reservados para uso como bytes iniciais. Um byte inicial especifica que ele e o byte final a seguir compõem um único caractere largo de 2 bytes. Você deve rastrear quais bytes são bytes iniciais. Em um conjunto de caracteres multibyte, os bytes iniciais ficam dentro de um determinado intervalo, assim como os bytes finais. Quando esses intervalos se sobrepõem, talvez seja necessário avaliar o contexto para determinar se um byte está funcionando como byte inicial ou byte final.
Suporte para ferramentas que simplificam a programação MBCS de aplicativos gravados para mercados internacionais.
Quando executado em uma versão habilitada para MBCS do sistema operacional Windows, o sistema de desenvolvimento do Visual C++ — inclusive o editor de código-fonte integrado, o depurador e as ferramentas de linha de comando — é completamente habilitado para MBCS. Para obter mais informações, consulte Suporte a MBCS no Visual C++.
Observação
Nesta documentação, o MBCS é usado para descrever todo o suporte não Unicode de caracteres multibyte. No Visual C++, o MBCS sempre significa DBCS. Não há suporte para conjuntos de caracteres maiores que 2 bytes.
Por definição, o caractere ASCII definido é um subconjunto de todos os conjuntos de caracteres multibyte. Em muitos conjuntos de caracteres multibyte, cada caractere no intervalo 0x00 – 0x7F é idêntico ao caractere que tem o mesmo valor no conjunto de caracteres ASCII. Por exemplo, nas cadeias de caracteres ASCII e MBCS, o caractere de um 1-byte NULL ('\0') tem valor 0x00 e indica o caractere nulo de terminação.