首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串转换: MBCS <->内有多个\0的UNICODE

字符串转换: MBCS <->内有多个\0的UNICODE
EN

Stack Overflow用户
提问于 2012-08-24 05:32:01
回答 1查看 268关注 0票数 1

我正在尝试将std::string Buffer -包含位图文件中的数据-转换为std::wstring。

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

当我没有传递-1作为length -参数,而是std::string-Buffer中数据的实际长度时,它会将Unicode-String弄乱,其中的字符肯定不会出现在原始字符串中的那个位置……

我必须编写自己的转换函数吗?或者,我是否应该将数据保留为临时字符数组,因为特殊符号将被错误地转换?

关于问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-24 05:52:51

使用这种方法会有很多,的事情会失败。其中,额外的字节可能会被添加到您的数据中,而您并没有意识到这一点。

奇怪的是,你唯一的选择是std::wstring()。如果这是一个自己开发的库,你应该花点功夫去写一个新函数。如果不是,那么在编写你自己的代码之前,确保没有更合适的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12100283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档