Suporte a Unicode

Unicode é uma especificação para oferecer suporte a todos os conjuntos de caracteres, incluindo os conjuntos de caracteres que não podem ser representados em um único byte. Se você está programando para um mercado internacional, considere o uso de qualquer Unicode ou conjuntos de caracteres multibyte (MBCSs) ou de habilitação de seu programa para construí-lo para um alterando um switch.

Um caractere largo é um código de caractere multilíngüe de 2 bytes. A maioria dos caracteres usados na computação moderna em todo o mundo, incluindo símbolos técnicos e caracteres especiais de publicação, pode ser representado de acordo com a especificação do Unicode, como um caractere largo. Caracteres que não podem ser representados em 1 caractere largo podem ser representados em um par de Unicode com recurso de substituto do Unicode. Porque cada caractere largo sempre é representado em um tamanho fixo de 16 bits, o uso de caracteres extensos simplifica a programação com conjuntos de caracteres internacionais.

Uma seqüência de caracteres largos é representada como um [] de wchar_t matriz e é apontada por uma wchar_t* ponteiro. Qualquer caractere ASCII pode ser representado como um caractere de largo por meio da prefixação a letra l para o caractere. Por exemplo, de L '\0' é a terminação ampla (16 bits) Nulo caracteres. Da mesma forma, qualquer seqüência de caracteres ASCII literal pode ser representada como um literal de seqüência de caracteres largos por meio da prefixação a letra l para o literal de ASCII ("Hello" L).

Geralmente, os caracteres extensos levar mais espaço na memória de caracteres multibyte mas são mais rápidos ao processo. Além disso, apenas uma localidade pode ser representado por vez na codificação multibyte, enquanto os conjuntos de caracteres de todo o mundo são representados simultaneamente pela representação Unicode.

A estrutura MFC está habilitado para Unicode em todo, exceto para as classes de banco de dados. (ODBC não está habilitado para Unicode.) MFC realiza a habilitação de Unicode usando macros portátil em todo, conforme mostrado na tabela a seguir.

Tipos de dados portáteis no MFC

Tipo de dados de 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

Classe CString usa _ TCHAR como sua base e fornece a operadores e construtores para conversões fácil. 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 que a unidade básica de operação é um caractere de 16 bits em vez de um byte de 8 bits. Ao contrário de trabalhando com conjuntos de caracteres multibyte (MBCSs), não é necessário (e não devem) tratar um caractere Unicode, como se fosse dois bytes distintas.

O que você deseja fazer?

Consulte também

Conceitos

Conjuntos de caracteres em C++

O suporte ao uso wmain