📜  c# 从字符串中获取字节 - C# (1)

📅  最后修改于: 2023-12-03 14:59:41.482000             🧑  作者: Mango

C# 从字符串中获取字节

在C#编程中,有时候我们需要将字符串转换为字节(byte)数组。这可以用于多种用途,例如在网络通信、文件读写等场景中。本文将介绍如何使用C#从字符串中获取字节,并提供示例代码。

使用 Encoding 类进行转换

在C#中,可以使用 Encoding 类提供的方法将字符串转换为字节数组。Encoding 类定义了多种字符编码方式,可以根据需求选择合适的编码方式进行转换。示例代码如下:

using System;
using System.Text;

class Program
{
    static void Main()
    {
        string str = "Hello, World!";

        // 将字符串转换为字节
        byte[] bytes = Encoding.UTF8.GetBytes(str);

        // 打印字节数组
        Console.WriteLine("字节数组:");
        for (int i = 0; i < bytes.Length; i++)
        {
            Console.Write(bytes[i] + " ");
        }
        Console.WriteLine();

        // 将字节数组转换为字符串
        string decodedStr = Encoding.UTF8.GetString(bytes);

        // 打印转换后的字符串
        Console.WriteLine("转换后的字符串:");
        Console.WriteLine(decodedStr);
    }
}

上述代码中,我们使用 UTF8 编码将字符串转换为字节数组,并使用循环打印了字节数组中的每个字节。接着,我们又使用 UTF8 编码将字节数组转换为字符串,并打印出来。请根据需要选择适合的编码方式。

使用 Encoding.ASCII 类进行转换

如果字符串中只包含ASCII字符(0-127),我们也可以使用 Encoding.ASCII 类进行转换。ASCII 编码只使用了一个字节表示一个字符,因此转换后的字节数组大小与字符串长度相同。示例代码如下:

using System;
using System.Text;

class Program
{
    static void Main()
    {
        string str = "Hello, World!";

        // 将字符串转换为字节
        byte[] bytes = Encoding.ASCII.GetBytes(str);

        // 打印字节数组
        Console.WriteLine("字节数组:");
        for (int i = 0; i < bytes.Length; i++)
        {
            Console.Write(bytes[i] + " ");
        }
        Console.WriteLine();

        // 将字节数组转换为字符串
        string decodedStr = Encoding.ASCII.GetString(bytes);

        // 打印转换后的字符串
        Console.WriteLine("转换后的字符串:");
        Console.WriteLine(decodedStr);
    }
}

上述代码中,我们使用 ASCII 编码将字符串转换为字节数组,并使用循环打印了字节数组中的每个字节。接着,我们又使用 ASCII 编码将字节数组转换为字符串,并打印出来。

注意:如果字符串中包含非ASCII字符,则使用 ASCII 编码进行转换将会丢失这些非ASCII字符。

以上就是使用C#从字符串中获取字节的方法。根据实际需求,选择合适的编码方式进行转换,可以确保数据的正确传输和处理。