将二进制字符串转换为可读的等价C#

本文关键字:二进制 字符串 转换 | 更新日期: 2023-09-27 18:29:15

我有一个包含一些二进制数据的字符串数组,我想将二进制数据转换为其等效的字符表示。数组中的每个元素都包含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"

将二进制字符串转换为可读的等价C#

如果你的数据在一个字节数组中,那么你可以使用这个:

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);
    }