string to byte[] without encoding or changing actual bytes at string
下面是我
1 | 0C 00 21 08 01 00 00 00 86 1B 06 00 54 51 53 65 72 76 65 72 |
我可以用
1 | 0C-00-21-08-01-00-00-00-86-1B-06-00-54-51-53-65-72-76-65-72 |
如何从字符串的
1 | 0C 00 21 08 01 00 00 00 86 1B 06 00 54 51 53 65 72 76 65 72 |
ASCII编码方法总是让我和其他等效字节字符串but the to the need is the我真的字节数组字符串to be en is as if,知道我在reversing operation(然后使用GetBytes toString)三端拨号字符串with the same about is but我亲爱的AT GetBytes while to get the精确的字节P></
当我说P></
to putP></
1 | 0C-00-21-08-01-00-00-00-86-1B-06-00-54-51-53-65-72-76-65-72 |
和getP></
1 | 0C 00 21 08 01 00 00 00 86 1B 06 00 54 51 53 65 72 76 65 72 |
谢谢提前P></
你需要这个
1 | byte[] bytes = str.Split('-').Select(s => Convert.ToByte(s, 16)).ToArray(); |
可以在
1 2 | string s ="0C-00-21-08-01-00-00-00-86-1B-06-00-54-51-53-65-72-76-65-72"; byte[] buf = SoapHexBinary.Parse(s.Replace("-","")).Value; |
记住bitconverter.toString返回等效的十六进制字符串表示,因此如果您决定继续使用它,请按以下方式转换:
1 2 | string temp = BitConverter.ToString(buf);//buf is your array. byte[] newbuf = temp.Split('-').Select(s => Convert.ToByte(s,16)).ToArray(); |
但将字节转换成字符串和返回字符串的最安全方法是base64:
1 2 | string str = Convert.ToBase64String(buf); byte[] result = Convert.FromBase64String(str); |