使用C#以二进制序列化字符串,并使用C ++对其进行反序列化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用C#以二进制序列化字符串,并使用C ++对其进行反序列化相关的知识,希望对你有一定的参考价值。

我正在努力找到一种有效的方法来将一个包含unicode和非unicode字符的字符串序列化为二进制数组,然后我将其序列化为一个我必须使用C ++反序列化的文件。

我已经在C ++中实现了一个串行器/解串器,我用它来完成大部分可以处理unicode和非unicode字符的序列化(基本上我将非unicode字符转换为它们的unicode等价物并将所有内容序列化为unicode字符串,而不是最有效的方法,因为每个字符串现在每个字符有2个字节,但有效。

我想要实现的是将任意字符串转换为每个字符串2个字节,然后我可以从C ++反序列化。

什么是实现我正在寻找的最有效的方法?

此外,关于我序列化字符串的方式的任何建议当然都被接受了。

答案

Encoding.Unicode.GetBytes("my string")将字符串编码为UTF-16,每个字符的大小为2字节。因此,如果您仍在寻找替代方案,请考虑编码。

以上是关于使用C#以二进制序列化字符串,并使用C ++对其进行反序列化的主要内容,如果未能解决你的问题,请参考以下文章

如何从网站以 xml 格式获取数据并使用 Objective-c 解析该数据以执行操作

处理 socket.io 客户端的 PHP/C++ 服务器

使用C使用分而治之查找数组中的多数元素

使用 C 在 Windows 上捕获和分析音频

使用 char 数组进行 C 结构初始化

不使用线程的 C++/Qt 线程错误