【问题标题】:Convert Binary String to its readable equivalence C#将二进制字符串转换为其可读等价 C#
【发布时间】:2014-11-05 09:37:14
【问题描述】:

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

            }

当前的“结果”是“0010001111000100001010010011101111000111001100110110011100110110”

【问题讨论】:

  • 你有例子吗?你尝试了什么?
  • 能否请您粘贴字符串.. 以验证其是否正常工作
  • 二进制数据是什么意思? “0010001111000100001010010011101111000111001100110110011100110110”或“♂453§◘AA§A”??
  • 请定义字符串数组包含一些二进制数据
  • 请提供一个好的代码示例和更多细节。您需要通过示例准确地解释输入的样子,以及您期望的输出,以及为什么这与您现在得到的输出不同。请参阅stackoverflow.com/help/mcve 获取有关如何编写好的代码示例的帮助。

标签: c# string binary-data


【解决方案1】:

如果您的数据在字节数组中,那么您可以使用:

string result = Encoding.ASCII.GetString(bytes);

【讨论】:

    【解决方案2】:

    我猜,你的字符串是 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);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 2014-08-03
      • 2021-02-24
      相关资源
      最近更新 更多