gpt4 book ai didi

c++ - 字符串转换 : MBCS <-> UNICODE with multiple\0 within

转载 作者:太空宇宙 更新时间:2023-11-04 12:05:55 25 4
gpt4 key购买 nike

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

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

当我不传递 -1 作为长度参数,而是传递 std::string-Buffer 中数据的实际长度时,它会将 Unicode-String 弄乱,其中包含在原始文件中绝对没有出现在该位置的字符字符串...

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

问候

最佳答案

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

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

关于c++ - 字符串转换 : MBCS <-> UNICODE with multiple\0 within,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com