我有一个字符串,需要将其转换为.NET中的等效字节数组。
这应该很容易,但是我脑筋急转弯。
Answers:
您需要使用编码(System.Text.Encoding
)来告诉.NET您期望输出什么。例如,在UTF-16(= System.Text.Encoding.Unicode
)中:
var result = System.Text.Encoding.Unicode.GetBytes(text);
首先确定您想要哪种编码:首先需要对Unicode有所了解。
接下来找出System.Text.Encoding
对应的。我的Core .NET refcard描述了大多数常见的refcard,以及如何获取实例(例如,通过的静态属性Encoding
或通过调用)Encoding.GetEncoding
。
最后,计算一下是否要一次所有字节(这是最简单的工作方式,只需一次调用Encoding.GetBytes(string),然后完成),或者是否需要将其分成大块-在这种情况下,想要使用Encoding.GetEncoder,然后一次编码一点。编码器负责保持两次调用之间的状态,以防万一您需要中断某个字符的情况。
Buffer.BlockCopy
并假设这是他们想要的更好的方法。
像这样:
string test = "text";
byte[] arr = Encoding.UTF8.GetBytes(test);