Como faço para usar caracteres Unicode de 3 e 4 bytes com seqüências de caracteres C ++ padrão?
No padrão C ++ nós temoschar
ewchar_t
para armazenar caracteres.char
pode armazenar valores entre0x00 e0xFF. Ewchar_t
pode armazenar valores entre0x0000
e0xFFFF
. std::string
usachar
, portanto, ele pode armazenar apenas caracteres de 1 byte.std::wstring
usawchar_t
, para que ele possa armazenar caracteres de até 2 bytes de largura. Isto é o que eu sei sobre strings em C ++. Por favor, corrija-me se eu disse algo errado até este ponto.
Eu leioo artigo para UTF-8 na Wikipedia, e aprendi que alguns caracteres Unicode consomem até 4 bytes de espaço. Por exemplo, o caractere chinês tem um ponto de código Unicode0x24B62, que consome espaço de 3 bytes na memória.
Existe um contêiner de string STL para lidar com esses tipos de caracteres? Eu estou procurando por algo parecidostd::string32
. Além disso, nós tivemosmain()
para ponto de entrada ASCII,wmain()
para ponto de entrada com suporte a caracteres de 16 bits; Que ponto de entrada usamos para código suportado em Unicode de 3 e 4 bytes?
Você pode por favor adicionar um pequeno exemplo?
(Meu sistema operacional: Windows 7 x64)