我有一个字符串,需要将其转换为 .NET 中的等效字节数组。
这应该很容易,但我有脑抽筋。
您需要使用编码( 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描述了大多数常见的,以及如何获取实例(例如,通过静态属性Encoding
或调用Encoding.GetEncoding
.
最后,确定您是否需要一次获得所有字节(这是最简单的工作方式 - 调用一次Encoding.GetBytes(string)就完成了)或者是否需要将其分成块 - 在这种情况下,您我想使用Encoding.GetEncoder然后一次编码一点。例如,编码器负责保持调用之间的状态,以防您需要在字符中途中断。
您使用的是什么编码?康拉德已经搞定了,但是还有其他的,你可能会用错误的结果得到愚蠢的结果:
byte[] bytes = System.Text.Encoding.XXX.GetBytes(text)
XXX
可以在哪里:
ASCII
BigEndianUnicode
Default
Unicode
UTF32
UTF7
UTF8
像这样:
string test = "text";
byte[] arr = Encoding.UTF8.GetBytes(test);