Я знаю, что этот вопрос задавался два раза перед переполнением стека, но на этот раз я прошу максимально гарантированный способ сделать это (способ, который не меняет значение данных). Я хочу преобразовать из строки в байт [], затем обратно в строку. Я мог бы использовать ByteConverter
, Convert
, Encoding
, BitConverter
, HttpServerUtility.UrlTokenEncode/HttpServerUtility.UrlTokenDecode
следующий код:Лучший способ преобразования между байтом [] и строкой?
string s2 = BitConverter.ToString(bytes); // 82-C8-EA-17
String[] tempAry = s2.Split('-');
byte[] decBytes2 = new byte[tempAry.Length];
for (int i = 0; i < tempAry.Length; i++)
{
decBytes2[i] = Convert.ToByte(tempAry[i], 16);
}
или следующий код:
private string ToString(byte[] bytes)
{
string response = string.Empty;
foreach (byte b in bytes)
response += (Char)b;
return response;
}
Если вы до сих пор не поняли, что я хочу, я хочу знать, какие и что нет, я хочу знать, какой путь следует использовать. Эй, я бы предпочел байт-массив с наименьшим размером, потому что я буду отправлять этот массив по сети, и я буду использовать первые 256 байт.
Если вы хотите использовать тот, который использует наибольшее количество данных ['Convert.ToBase64String'] (https://msdn.microsoft.com/en-us/library/system.convert.tobase64string (v = vs.110)) .aspx) даст вам гораздо более короткую строку, чем все элементы, перечисленные выше. –
Также возникает вопрос: «Как преобразовать байтовый массив в шестнадцатеричную строку и наоборот?» (Http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to -hexadecimal-string-and-vice-versa) «не для вас? –