我有一个从 Python 2 转换的应用程序(其中字符串本质上是字节列表),并且我使用字符串作为方便的字节缓冲区。
我正在用 Boo 语言(类似 Python 的语法,在 .NET 上运行)重写其中的一些代码,并且发现这些字符串具有内在编码类型,例如 ASCII、UTF-8 等。大部分信息处理bytes 指的是字节数组,它们(显然)是固定长度的,这使得它们很难使用。
我显然可以从字符串中获取字节,但有可能将某些字符扩展为多个字节,或丢弃/更改 127 以上的字节等。这很好,我完全理解这样做的原因 - 但什么对我来说很方便要么是(a)一种保证不转换或丢弃字符的编码,因此我可以将字符串用作方便的字节缓冲区,或者(b)某种提供字符串类便利的 ByteString 类。(理想情况下是后者,因为它看起来不像黑客攻击。)其中任何一个已经存在吗?(或者实现起来很简单?)
我知道 System.IO.MemoryStream,但是每次都创建一个,然后不得不在最后创建一个 System.IO.StreamReader 只是为了访问 ReadToEnd() 似乎效率不高,而且这是在性能敏感的代码中。
(我希望没有人介意我将其标记为 C#,因为我觉得答案可能也适用于那里,并且 C# 用户可能对可能的解决方案有一个很好的了解。)
编辑:我也刚刚发现 System.Text.StringBuilder - 同样,字节有这样的东西吗?