我有一个字节的std::vector (
注意:我会将我的UTF-16字符串存储为或>,但我有这个内存缓冲区,我碰巧知道它是UTF-16格式,我需要复制它,但不知道怎么搞...
char
),我想做的就是将此向量转换为wchar_t
类型的向量。显然,我需要复制数据,但这里的问题是,我已经在左侧拥有了UTF-16字节流,我只想将其移动到wchar_t
向量中以便使用。理想情况下,我想交换缓冲区,但我不确定如何以安全的方式实现...那么,在C++中,如何进行高效且安全的转换复制操作呢?注意:我会将我的UTF-16字符串存储为或>,但我有这个内存缓冲区,我碰巧知道它是UTF-16格式,我需要复制它,但不知道怎么搞...
char
?顺便说一下,从char
转换为wchar_t
是使用widen
完成的,但我猜这不是你想要的 http://www.cplusplus.com/reference/std/locale/ctype/widen/ - Šimon Tóthchar
? - Griwesstd::vector<uint8>
字节序列)。然后我使用一个简单的启发式方法,查看前几个字节以确定编码方式。如果我找到了UTF-16字节顺序标记,我知道我真正需要做的就是改变我查看这些字节的方式,就可以了。最好的情况是,我希望能够在不复制整个缓冲区的情况下,将内容从内存缓冲区传输到文本缓冲区。复制并不是问题,但我正在寻找一种简单的方法来完成这个转换。 - John Leidegren