我有一个包含二进制数据(非文本数据)的字符串。
如何将其转换为原始字节数组?
我有一个包含二进制数据(非文本数据)的字符串。
如何将其转换为原始字节数组?
C#中的字符串 - 根据定义 - 不包含二进制数据。它由一系列Unicode字符组成。
如果您的字符串仅包含ASCII(7位)字符集中的Unicode字符,则可以使用Encoding.ASCII将字符串转换为字节:
byte[] result = Encoding.ASCII.GetBytes(input);
如果您有一个包含Unicode字符范围在u0000-u00ff之间的字符串,并希望将其解释为字节,则可以将字符转换为字节:
byte[] result = new byte[input.Length];
for (int i = 0; i < input.Length; i++)
{
result[i] = (byte)input[i];
}
Dim bData() As Byte
Dim sData As String
'convert string binary to byte array
bData = System.Text.Encoding.GetEncoding(1252).GetBytes(sData)
'convert byte array to string binary
sData = System.Text.Encoding.GetEncoding(1252).GetString(bData)
'\x80'
字符,它会被转换成'?'。 - AbyxBitConverter.ToString(Encoding.GetEncoding(1252).GetBytes("\x80"))
并得到了 3F
。你可以在 ideone.com 上尝试一下。 - Abyx这里有一种方法:
public static byte[] StrToByteArray(string str)
{
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
return encoding.GetBytes(str);
}
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] theBytes = encoding.GetBytes("Some String");