我需要将一个字符串转换为.NET 中等效的字节数组。
这应该很容易,但我的大脑抽筋了。
您需要使用编码 (System.Text.Encoding)来告诉. NET 您期望的输出结果:
System.Text.Encoding
var result = System.Text.Encoding.Unicode.GetBytes(text);
像这样:
string test = "text"; byte[] arr = Encoding.UTF8.GetBytes(test);
您使用什么编码?康拉德已经做得差不多了,但还有其他人,你可能会得到愚蠢的结果,错误的一个:
byte[] bytes = System.Text.Encoding.XXX.GetBytes(text)
XXX的位置:
XXX
ASCII BigEndianUnicode Default Unicode UTF32 UTF7 UTF8
首先要弄清楚您想要哪种编码: 您首先需要知道 关于 Unicode 的一些知识。
接下来找出对应的 System.Text.Encoding。我的 核心.NET refcard描述了大多数常见的实例,以及如何获取实例(例如,通过 Encoding的静态属性或通过调用 Encoding.GetEncoding获取实例)。
Encoding
Encoding.GetEncoding
最后,弄清楚是否需要同时使用所有字节(这是最简单的工作方式——调用 编码. GetBytes (字符串)一次就完成了) ,或者是否需要将其分成几个块——在这种情况下,需要使用 编码,获取编码器,然后一次进行一点编码。编码器负责在调用之间保持状态,例如,如果您需要在字符的中间断开。