나는 바이트 (char
)의 std :: vector를 가지고 있는데, 단지 "C-style casting"이 벡터를 wchar_t
인 벡터로 변환합니다.std :: vector "cast"하는 방법 <char> std :: vector <wchar_t>
분명히, 데이터를 복사하는 것입니다.하지만 여기에는 왼쪽에 UTF-16 바이트 스트림이 이미 있습니다.이 코드를 wchar_t
벡터로 옮기고 싶습니다. 나는 그것을 사용할 수있다. 이상적으로, 나는 단지 버퍼를 교환하고 싶지만 안전한 방법으로 어떻게 할 지 모르겠다. ...
효율적인 변환 작업으로 C++을 수행하는 방법은 무엇입니까?
참고 :
내가 std::wstring
또는 std::vector<wchar_t>
으로 내 UTF-16 문자열을 저장하지하지만 난 UTF-16 알 일이 메모리 버퍼를 가지고 있고, 나는 ...
무엇 (면책 조항. 나는 그렇지 않으면 당신은
last
포인터를 조정해야 벡터의 크기가sizeof(wchar_t)
로 나누어 있으리라 믿고있어)? UTF-16 데이터가'char'로 저장되어 있습니까? Btw. 'char'에서'wchar_t' 로의 변환은'widen'을 사용하여 이루어집니다. 그러나 여러분이 원하는 것은 아닙니다. http://www.cplusplus.com/reference/std/locale/ctype/widen/ –http : // /www.codeproject.com/Tips/196097/Converting-ANSI-to-Unicode-and-back?display=Print가 대답 할 수 있습니다. –
그리고 Let_Me_Be의 의견을 확장하십시오 : 왜 UTF-16 데이터가'char'로 저장 되었습니까? – Griwes