如何在.NET中将string转换为字节数组?
我有一个string,我需要在.NET中转换为等效的字节数组。
这应该是容易的,但我有一个脑筋抽筋。
你需要使用一个编码来告诉.NET你期望的输出。 例如,在UTF-16中:
var result = System.Text.Encoding.Unicode.GetBytes(text);
首先计算出你想要的编码:首先需要了解一下Unicode 。
接下来找出对应的System.Text.Encoding
。 我的核心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);