vb.net – 如何从Byte()获取字符串而不破坏其二进制内容?

vb.net – 如何从Byte()获取字符串而不破坏其二进制内容?,第1张

概述我的语言通常包含人类可读格式的序列化数据消息,但该语言中的某些产品包含逐字原始的二进制数据. 我的解析器使用String作为缓冲区,因为这似乎是最容易使用的东西.但是,数据从网络套接字读取到Byte数组中. 现在,我正在尝试连接Byte()和String之间的点: ' data as Byte()' count as Integer' buffer as Stringbuffer += S 我的语言通常包含人类可读格式的序列化数据消息,但该语言中的某些产品包含逐字原始的二进制数据.

我的解析器使用String作为缓冲区,因为这似乎是最容易使用的东西.但是,数据从网络套接字读取到Byte数组中.

现在,我正在尝试连接Byte()和String之间的点:

' data as Byte()' count as Integer' buffer as Stringbuffer += System.Text.EnCoding.ASCII.GetString(data,count)

但我最初的假设是,ASCII编码只会留下我的字节,结果证明是无效的;具有不适合7位模型的值的任何字节都被转换为’?’.

那么我想到使用单字节“Unicode”编码,它应该只留下我的字节,但也允许整个8位范围内的值:

' data as Byte()' count as Integer' buffer as StringDim enc = New System.Text.UTF8EnCodingbuffer += enc.GetString(data,count)

但我的数据仍然受到损害.我实际上还没有能够精确地推断数据是如何被破坏的,但我确实知道数据的长度正在变化,这表明字节不是逐字逐句的.

那么如何获取一个String,其内容只是我的Bytes()输入中字节的逐字副本?

解决方法 根据我们的评论讨论,您似乎希望在编码的绝对中看到Byte实例.如果是这种情况,您应该考虑使用List(Of Byte)而不是String 总结

以上是内存溢出为你收集整理的vb.net – 如何从Byte()获取字符串而不破坏其二进制内容?全部内容,希望文章能够帮你解决vb.net – 如何从Byte()获取字符串而不破坏其二进制内容?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1212973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存