Conversión de std :: u32string a / desde std :: string y std :: u16string
Necesito convertir entre UTF-8, UTF-16 y UTF-32 para diferentes API / módulos y, como sé, tengo la opción de usar C ++ 11 estoy viendo los nuevos tipos de cadenas.
Parece que puedo usarstring
, u16string
yu32string
para UTF-8, UTF-16 y UTF-32. Yo tambien encontrecodecvt_utf8
ycodecvt_utf16
que parecen poder hacer una conversión entrechar
ochar16_t
ychar32_t
y lo que parece un nivel superiorwstring_convert
pero eso solo parece funcionar con bytes /std::string
y no una gran cantidad de documentación.
¿Estoy destinado a usar unwstring_convert
de alguna manera para el caso UTF-16 ↔ UTF-32 y UTF-8 ↔ UTF-32? Realmente solo encontré ejemplos para UTF-8 a UTF-16, que ni siquiera estoy seguro de que sean correctos en Linux dondewchar_t
normalmente se considera UTF-32 ... ¿O hacer algo más complejo con esas cosas de codecvt directamente?
¿O esto todavía no está realmente en un estado utilizable y debería seguir con mis propias pequeñas rutinas existentes usando enteros sin signo de 8, 16 y 32 bits?