Tengo un std :: vector de bytes (char
), me gustaría hacer el equivalente de "casting de estilo C" solo este vector a un vector que es del tipo wchar_t
.Cómo "fundido" un std :: vector <char> std :: vector <wchar_t>
Obviamente, lo que realmente tengo que hacer es copiar los datos, pero el asunto aquí es que ya tengo un flujo de bytes UTF-16 en el lado izquierdo, solo quiero moverlo al vector wchar_t
para que Puedo utilizarlo. Idealmente, me gustaría simplemente cambiar el búfer, pero no estoy seguro de cómo hacerlo de manera segura ...
¿Cuál es la forma C++ de hacer una operación de copiado de conversión tan eficiente como segura?
NOTA:
almaceno mis cadenas UTF-16 como std::wstring
o std::vector<wchar_t>
pero tengo este búfer de memoria que resulta que sé es UTF-16, y tengo que copiarlo, de alguna manera ...
¿Qué? ¿Tiene datos UTF-16 almacenados como 'char'? Por cierto. la conversión de 'char' a' wchar_t' se hace usando 'widen', pero supongo que eso no es lo que quiere http://www.cplusplus.com/reference/std/locale/ctype/widen/ –
http://www.codeproject.com/Tips/196097/Converting-ANSI-to-Unicode-and-back?display=Print puede responderlo –
Y para extender el comentario de Let_Me_Be: ¿Por qué tiene datos UTF-16 almacenados como 'char'? – Griwes