Compartilhar via


Conjuntos de caracteres de bytes duplos

Um DBCS (conjunto de caracteres de bytes duplos), também conhecido como "conjunto de caracteres expandido de 8 bits", é um conjunto de caracteres de único byte estendido (SBCS), 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 ideógrafos chineses 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 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.

Nota

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 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 diferentes páginas de código 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 iniciar no início da cadeia de caracteres e examinar 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 verifica a cadeia de caracteres um byte de cada vez e encontra 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 que com a barra invertida possível. 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çãoStrStr.

Seus aplicativos usam páginas de código do Windows DBCS com as versões "A" das funções do Windows. Consulte Conventions for Function Prototypes and Code Pages. Para ajudar a identificar uma página de código DBCS, um aplicativo pode usar aGetCPInfoou função de GetCPInfoEx. Um aplicativo pode usar a função IsDBCSLeadByte para determinar se um determinado valor pode ser usado como o byte 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