如何在 C# 中将字节数组转换为字符串?


在 .Net 中,每个字符串都有一个字符集和编码。一种字符编码告诉计算机如何将原始的零和一解释为真正的字符。它通常通过将数字与字符配对来实现此目的。实际上,它是在对一组 Unicode 字符进行转换生成一个字节序列的过程。

我们可以使用 Encoding.GetString Method (Byte[]) 来将指定字节数组中的所有字节解码成字符串。编码类中还提供了多种其他解码方案,比如 UTF8、Unicode、UTF32、ASCII 等。编码类可在 System.Text 命名空间中找到。

string result = Encoding.Default.GetString(byteArray);

示例

 在线演示

using System;
using System.Text;
namespace DemoApplication {
   public class Program {
      static void Main(string[] args) {
         byte[] byteArray = Encoding.Default.GetBytes("Hello World");
         Console.WriteLine($"Byte Array is: {string.Join(" ", byteArray)}");
         string str = Encoding.Default.GetString(byteArray);
         Console.WriteLine($"String is: {str}");
         Console.ReadLine();
      }
   }
}

输出

上述代码的输出为

Byte Array is: 72 101 108 108 111 32 87 111 114 108 100
String is: Hello World

需要指出的是,我们应当对两个方向使用相同的编码。例如,如果字节数组采用 ASCII 编码,而我们尝试使用 UTF32 获得字符串,我们则无法获得需要的字符串。

示例

 在线演示

using System;
using System.Text;
namespace DemoApplication {
   public class Program {
      static void Main(string[] args) {
         byte[] byteArray = Encoding.ASCII.GetBytes("Hello World");
         Console.WriteLine($"Byte Array is: {string.Join(" ", byteArray)}");
         string str = Encoding.UTF32.GetString(byteArray);
         Console.WriteLine($"String is: {str}");
         Console.ReadLine();
      }
   }
}

输出

上述代码的输出为

Byte Array is: 72 101 108 108 111 32 87 111 114 108 100
String is: ???

更新于: 08-Aug-2020

17K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始
广告