1

我正在尝试将包含来自位图文件的数据的 std::string 缓冲区转换为 std::wstring。

我正在使用MultiByteToWideChar,但这不起作用,因为该函数在遇到第一个 - 字符后停止'\0'。似乎它将其解释为字符串的结尾。

当我不传递 -1 作为长度参数,而是传递 std::string-Buffer 中数据的实际长度时,它会将 Unicode-String 与原始字符串中明显未出现在该位置的字符混淆.. .

我必须编写自己的转换函数吗?或者也许我应该将数据保留为一个随意的字符数组,因为特殊符号将被错误地转换?

带着敬意

4

1 回答 1

1

这种方法会失败很多很多事情。除此之外,额外的字节可能会在您没有意识到的情况下添加到您的数据中。

奇怪的是,您唯一的选择需要一个std::wstring(). 如果这是一个自制的库,您应该不厌其烦地编写一个新函数。如果不是,请确保在编写自己的之前没有更合适的。

于 2012-08-23T21:52:51.197 回答