Conjuntos de caracteres de dois bytes

Um DBCS (conjunto de caracteres de byte duplo), 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 byte duplo. Um DBCS pode corresponder a uma página de código do 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 nativo, 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 do Windows devem usar Unicode para evitar 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 de caracteres fornecida 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 mantém o controle quando encontra um byte de cliente potencial 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 por 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 cliente potencial, pois esse valor de byte pode ser qualificado para ser usado como um byte de cliente potencial e um byte de trilha. Portanto, o aplicativo tem essencialmente o mesmo problema com ele que 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 do Windows DBCS com as versões "A" das funções do 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 inicial 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