Partilhar via


suporte Unicode e do conjunto de caracteres de Multibyte (MBCS)

Algumas linguagens, por exemplo, japonês e chinês, têm grandes conjuntos de caracteres.Para programação de suporte para esses mercados, a biblioteca de classes da Microsoft foundation (MFC) é ativada para duas abordagens diferentes para manipular grandes conjuntos de caracteres:

  • Unicode

  • Conjuntos de caracteres de Multibyte (MBCS)

Suporte MFC para cadeias de caracteres Unicode

A biblioteca de classe inteira é ativada condicional para caracteres e cadeias de caracteres Unicode.Em particular, a classe CString Unicode- é ativada.

UAFXCW.LIB

UAFXCW.PDB

UAFXCWD.LIB

UAFXCWD.PDB

MFCxxU.LIB

MFCxxU.PDB

MFCxxU.DLL

MFCxxUD.LIB

MFCxxUD.PDB

MFCxxUD.DLL

MFCSxxU.LIB

MFCSxxU.PDB

MFCSxxUD.LIB

MFCSxxUD.PDB

MFCMxxU.LIB

MFCMxxU.PDB

MFCMxxU.DLL

MFCMxxUD.LIB

MFCMxxUD.PDB

MFCMxxUD.DLL

(xx representa o número de versão do arquivo; por exemplo, “80 " significa que a versão 8,0).

CString é baseado no tipo de dados de TCHAR .Se o símbolo _UNICODE é definido para uma compilação do seu programa, TCHAR está definido como o tipo wchar_t, um tipo de 16 bits de codificação de caracteres.Caso contrário, TCHAR é definido como char, a codificação de caracteres de 8 bits normal.Portanto, em Unicode, CString é composta de caracteres de 16 bits.Sem Unicode, é composto de caracteres de tipo char.

Para concluir a programação Unicode do seu aplicativo, você também deve:

  • Use a macro de _T ao código condicional cadeias de caracteres literal para ser portátil a Unicode.

  • Quando você passar cadeias de caracteres, atenção de pagamento a se os argumentos da função requer um comprimento de caracteres ou um tamanho em bytes.A diferença é importante se você estiver usando cadeias de caracteres Unicode.

  • Use versões portáteis funções de cadeia de caracteres manipulação de tempo de execução de C.

  • Use os seguintes tipos de dados para caracteres e ponteiros de caracteres:

    • TCHAR onde você usaria char.

    • LPTSTR onde você usaria char*.

    • LPCTSTR onde você usaria const char*.CString fornece o operador LPCTSTR para converter entre CString e LPCTSTR.

CString também fornece construtores, operadores de atribuição, e operadores de comparação cientes de.

Para informações relacionadas Unicode que programa, consulte Tópicos Unicode.Referência da biblioteca em tempo de execução define versões portáteis de todas as suas funções de cadeia de caracteres tratamento.Consulte a categoria internacionalização.

Suporte MFC para cadeias de caracteres de MBCS

A biblioteca de classe também é ativada para conjuntos de caracteres de multibyte, mas somente para conjuntos de caracteres de dois bytes (DBCS).

Em um conjunto de caracteres de multibyte, um caractere pode ser um ou dois bytes de largura.Se for dois bytes de largura, o primeiro byte é um “byte inicial especial” que é escolhido de um intervalo específico, dependendo da página de código está em uso.Tomada juntos, a ligação e “bytes finais” especificam uma codificação de caracteres exclusiva.

Se o símbolo _MBCS é definido para uma compilação do seu programa, o tipo TCHAR, que é baseado em CString , mapeia a char.Você pode para determinar que bytes em CString são bytes inicial e quais são bytes finais.Funções de fontes da biblioteca em tempo de execução de C para ajudá-lo a determinar isso.

Sob DBCS, uma cadeia de caracteres fornecida pode conter todos os caracteres de byte único ANSI, todos os caracteres de byte duplo, ou uma combinação dos dois.Essas possibilidades exigem cuidado especial em analisando cadeias de caracteres.Isso inclui objetos de CString .

ObservaçãoObservação

A serialização de cadeia de caracteres Unicode no MFC pode ler Unicode e as cadeias de caracteres de MBCS independentemente de qual versão do aplicativo que está sendo executado.Seus arquivos de dados são portáveis entre Unicode e versões de MBCS do seu programa.

As funções de membro deCString “versões especial de texto” genérico que o uso de tempo de execução de As chamadas funcionam eles, ou usam funções cientes de.Portanto, por exemplo, se uma função de CString normalmente chamaria strcmp, chama a função correspondente _tcscmp de genérico- texto em vez de isso.Dependendo de como os símbolos _MBCS e _UNICODE são definidos, _tcscmp mapeia a seguinte maneira:

_MBCS definiu

_mbscmp

_UNICODE definiu

wcscmp

Nenhum símbolo definiu

strcmp

ObservaçãoObservação

Os símbolos _MBCS e _UNICODE são mutuamente exclusivos.

Os mapeamentos da função de Genérico- texto para todas as rotinas de cadeia de caracteres manipulação de tempo de execução são discutidos em Referência de biblioteca de tempo de execução c.Em particular, consulte Internacionalização.

De a mesma forma, os métodos de CString são implementados usando mapeamentos “genéricos” do tipo de dados.Para ativar MBCS e Unicode, o MFC usa TCHAR para char, LPTSTR para char*, e LPCTSTR para const char*.Esses asseguram os mapeamentos corretos para MBCS ou Unicode.

Consulte também

Referência

Manipulação de cadeia de caracteres (CRT)

Outros recursos

Cadeias de caracteres (ATL/MFC)