Conjuntos de caracteres de dois bytes

Um DBCS (conjunto de caracteres de dois bytes), também conhecido como "conjunto de caracteres expandido de 8 bits", é um SBCS ( conjunto de caracteres de byte único ) estendido, implementado como uma página de código. Os DBCSs foram originalmente desenvolvidos para estender o design do SBCS para lidar com idiomas como japonês e chinês. Alguns caracteres em um DBCS, incluindo os dígitos e letras usados para escrever inglês, têm valores de código de byte único. Outros caracteres, como ideografias chinesas ou kanji japonês, têm valores de código de bytes duplos. Um DBCS pode corresponder a uma página de código Windows ou a uma página de código OEM. Uma página de código DBCS também pode incluir uma página de código não nativa, por exemplo, uma página de código EBCDIC. Para obter definições dessas páginas de código, consulte Páginas de Código.

Observação

Novos aplicativos de Windows devem usar o Unicode para evitar as inconsistências de páginas de código variadas e para facilitar a localização. No entanto, alguns protocolos herdados podem exigir o uso de páginas de código DBCS. Cada página de código DBCS dá suporte a caracteres diferentes, mas nenhuma página dá suporte à amplitude completa dos caracteres fornecidos pelo Unicode. Cada página de código DBCS dá suporte a um subconjunto diferente, codificado de forma diferente. Os dados convertidos de uma página de código DBCS para outra estão sujeitos a corrupção porque o mesmo valor de dados em páginas de código diferentes pode codificar um caractere diferente. Os dados convertidos de Unicode para DBCS estão sujeitos à perda de dados, pois uma determinada página de código pode não ser capaz de representar todos os caracteres usados nesses dados Unicode específicos.

 

Para interpretar uma cadeia de caracteres DBCS, um aplicativo deve começar no início da cadeia de caracteres e verificar para frente. Ele acompanha quando encontra um byte de chumbo na cadeia de caracteres e trata o próximo byte como a parte à direita do mesmo caractere. Se o aplicativo simplesmente examinar a cadeia de caracteres um byte de cada vez e encontrar um byte que parece ser o valor de código que representa uma barra invertida ("\"), esse byte pode ser simplesmente o byte de trilha de um caractere de dois bytes. O aplicativo não pode apenas fazer backup de um byte para ver se o byte anterior é um byte de lead, pois esse valor de byte pode ser qualificado para ser usado como um byte de lead e um byte de trilha. Portanto, o aplicativo tem essencialmente o mesmo problema com ele como com a possível barra invertida. Em outras palavras, as pesquisas de subcadeia de caracteres são muito mais complicadas com um DBCS do que com SBCSs ou Unicode. Assim, os aplicativos que dão suporte a um DBCS devem usar funções especiais, como _mbsstr, em vez da função StrStr .

Seus aplicativos usam páginas de código Windows DBCS com as versões "A" de funções de Windows. Consulte convenções para protótipos de função e páginas de código. Para ajudar a identificar uma página de código DBCS, um aplicativo pode usar a função GetCPInfo ou GetCPInfoEx . Um aplicativo pode usar a função IsDBCSLeadByte para determinar se um determinado valor pode ser usado como o byte de chumbo de um caractere de 2 bytes. Além disso, um aplicativo pode usar as funções MultiByteToWideChar e WideCharToMultiByte para mapear entre cadeias de caracteres Unicode e DBCS.

Conjuntos de caracteres

Conjuntos de caracteres de byte único