Suporte a Unicode
Unicode é uma especificação para oferecer suporte a todos os conjuntos de caractere, incluindo conjuntos de caractere que não podem ser representados em um único byte.Se você está programando para um mercado internacional, considere o uso de Unicode ou conjuntos de caractere multibyte (MBCSs) ou de habilitação de seu programa para construí-lo para um, alterando um comutador.
Um caractere largo é um código de caracteres multilíngüe 2 byte.A maioria dos caracteres usados na computação moderna em todo o mundo, incluindo símbolos técnicos e caracteres especiais de publicação, podem ser representados de acordo com a especificação do Unicode sistema autônomo um caractere largo.Caracteres que não podem ser representadas no caractere largo 1 podem ser representados em um emparelhar de Unicode com recurso de substituto do Unicode.Porque cada caractere largo sempre é representado em um dimensionar fixo de 16 bits, o uso de caracteres largos simplifica a programação com conjuntos de caracteres internacionais.
Uma seqüência de caractere a toda é representada sistema autônomo um [] wchar_t array e é apontada por um wchar_t* ponteiro. Qualquer caractere ASCII pode ser representado sistema autônomo um caractere de largo por letra L caractere para a colocação de um prefixo.Por exemplo, L '\0' é a terminação de toda (16 bit) NULO caractere.Da mesma forma, qualquer seqüência de caractere ASCII literal pode ser representada sistema autônomo uma seqüência de caractere largos literal pela colocação de um prefixo a letra L para o literal de ASCII ("Hello" L).
Em geral, caracteres largos demorar mais espaço na memória de caracteres multibyte mas são mais rápidos ao processo.Além disso, somente uma localidade pode ser representado por vez na codificação multibyte, enquanto os conjuntos de todos os caractere no mundo são representados simultaneamente por representação Unicode.
A estrutura do MFC está habilitado para Unicode em todo, exceto para as classes de banco de dados.(ODBC não está habilitado para Unicode.) MFC realiza Unicode permitindo usando macros portátil em todo, conforme mostrado na tabela a seguir.
Tipos de dados portátil no MFC
Tipo de dados não-portáteis |
Substituído por esta macro |
---|---|
char |
_TCHAR |
char *, LPSTR (tipo de dados Win32) |
LPTSTR |
Const char *, LPCSTR (tipo de dados Win32) |
LPCTSTR |
De classeCString usa _TCHAR sistema autônomo sua base e fornece construtores e operadores para conversões simples.A maioria das operações de seqüência de caracteres para Unicode pode ser escrito usando a mesma lógica usada para manipular o conjunto de caracteres ANSI do Windows, exceto pelo fato de que a unidade básica de operação é um caractere de 16 bit em vez de um byte com 8 bit.Ao contrário de trabalhando com conjuntos de caracteres multibyte (MBCSs), você não é necessário (e não deve) tratar um caractere Unicode sistema autônomo se fosse dois bytes distintas.
O que você deseja fazer?
Use wmain para que eu pode passar argumentos de caractere largo para meu programa
Saiba mais sobre mapeamentos de texto genérico para portabilidade de largura de byte