Parse String to byte array C#
本问题已经有最佳答案,请猛点这里访问。
我已经完成了以下操作,将字节数组转换为字符串以存储在数据库中
1 2 | byte[] value; String stValue = BitConverter.ToString(value); |
现在我只想做相反的事
1 2 | String stValue; byte[] value= (Convert) stValue ??? |
如何做到这一点??
因为您使用的是
1 2 3 4 | public static byte[] GetBytes(string value) { return value.Split('-').Select(s => byte.Parse(s, System.Globalization.NumberStyles.HexNumber)).ToArray(); } |
或者正如本·沃伊特所说:
1 2 3 4 5 6 7 8 9 | public static byte[] GetBytes(string value) { return Array.ConvertAll(value.Split('-'), s => byte.Parse(s, System.Globalization.NumberStyles.HexNumber)); } ... var originalBytes = new byte[] { 1, 2, 3, 4, 5 }; var stValue = BitConverter.ToString(originalBytes); //"01-02-03-04-05" var bytes = GetBytes(stValue); // [ 1, 2, 3, 4, 5 ] |
但是,通常不需要使用
1 2 3 | var originalBytes = new byte[] { 1, 2, 3, 4, 5 }; var stValue = Convert.ToBase64String(originalBytes); //"AQIDBAU=" var bytes = Convert.FromBase64String(stValue); // [ 1, 2, 3, 4, 5 ] |
另一方面,
1 2 3 | var originalValue ="Hello World"; var bytes = Encoding.UTF8.GetBytes(originalValue); // [ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 ] var stValue = Encoding.UTF8.GetString(bytes); //"Hello World" |
采用
1 | byte[] value = Encoding.Default.GetBytes(stValue); |
Encodes all the characters in the specified string into a sequence of
bytes.
你可以这样做:
1 | byte[] value = Encoding.Default.GetBytes(stValue); |
1 2 3 | String[] arr=str.Split('-'); byte[] array=new byte[arr.Length]; for(int i=0; i<arr.Length; i++) array[i]=Convert.ToByte(arr[i],16); |
这就是我需要的。谢谢@ Shekhar
试试这个
1 2 3 4 5 6 7 8 9 10 11 | const string input ="Dot Net Perls"; // Invoke GetBytes method. // ... You can store this array as a field! byte[] array = Encoding.ASCII.GetBytes(input); // Loop through contents of the array. foreach (byte element in array) { Console.WriteLine("{0} = {1}", element, (char)element); } |
产量
68=D,111=O,116=t,32=78=n,101=E,116=t,32=80=P,101=E,114=R,108=L,115=S,
根据您想要的转换,有不同的方法来实现这一点。有
1 | byte[] strArray = System.Text.Encoding.(UTF8 | ASCII | Unicode).GetBytes(str); |
请参阅此处以获取参考。