我有一个包含一些二进制数据的字符串数组,我想将二进制数据转换为其等效的字符表示。数组中的每个元素都包含8位"1字节"的数据,我需要知道如何将其转换为字符等效
这是字符串数组:
IEnumerable<string> resultChunks = Enumerable.Range(0, result.Length / 8)
.Select(x => result.Substring(x * 8, 8));
string[] newRes = resultChunks.ToArray();
string tempRes="";
for (int i = 0; i < newRes.Length; i++)
{
tempRes+=Convert.ToString(newRes[i]);
}
当前"结果"为"001000111100010000101001001110111100011100110110011100110110"
如果你的数据在一个字节数组中,那么你可以使用这个:
string result = Encoding.ASCII.GetString(bytes);
我猜,您的字符串是base64字符串。然后你可以使用下一种方法:
public static string FromBase64(string base64Str, Encoding encoding = null)
{
if (string.IsNullOrWhiteSpace(base64Str))
{
return string.Empty;
}
byte[] bytes;
try
{
bytes = System.Convert.FromBase64String(base64Str);
}
catch (FormatException)
{
return string.Empty;
}
var stringEncoding = encoding ?? Encoding.UTF8;
return stringEncoding.GetString(bytes);
}