私はバイト(char
)のstd :: vectorを持っています。私はちょうど"Cスタイルキャスト"このベクターは、タイプwchar_t
であるベクターに連結される。std :: vectorを "cast"する方法<wchar_t>
明らかに、データをコピーするだけですが、ここでは左側にUTF-16バイトストリームが既にあるので、それをベクトルに移動したいと思います私はそれを使用することができます。理想的には、私はバッファを交換するだけですが、私は安全な方法でそれを行う方法がわかりません...
安全な変換を効率的に行うためのC++の方法は何ですか?
注:
私はstd::wstring
かstd::vector<wchar_t>
としての私のUTF-16文字列を格納んが、私は私が知っていることが起こるこのメモリバッファを持っているが、UTF-16である、と私は何とか、それをコピーする必要があります...
何?あなたは 'char'として格納されたUTF-16データを持っていますか? 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