C#字符串转字节数组的多种实现方法

一颗松果
一颗松果
发布时间:2026-10-13| 5人浏览过
原创

在C#开发中,将字符串转换为字节数组通常涉及字符编码的处理。本文将解析使用System.Text.Encoding命名空间下的标准方法来实现这一过程,包括UTF-8和Unicode编码的具体应用场景。

为什么需要转换

在进行文件读写、网络数据传输或加密操作时,原始字符串数据往往无法直接使用,必须转换为底层的字节序列。不同的编码格式生成的字节长度和内容可能不同,因此选择正确的编码至关重要。

使用 UTF-8 编码转换(推荐)

UTF-8是目前互联网通用的编码格式,具有良好的兼容性和空间效率。使用Encoding.UTF8是最推荐的通用做法。

using System;
using System.Text;

public static byte[] ConvertStringToByteArray(string input)
{
    // 使用 UTF8 编码获取字节数组
    return Encoding.UTF8.GetBytes(input);
}

执行说明

  • 入口:任意非空的 string 类型参数。
  • 动作:GetBytes 方法会根据 UTF-8 规则将字符序列化为字节序列。
  • 完成状态:返回一个包含对应字节数据的 byte[] 对象。

其他常用编码方式

根据特定的系统需求,您可能需要调用其他特定的编码格式:

Unicode (UTF-16) 编码

这是早期 .NET Framework 内部使用的默认宽字符编码,每个字符固定占2字节。如果需与旧版系统或其他依赖 UTF-16 的平台对接,可参考以下写法:

// 注意:在较新的 .NET 版本中推荐使用 UnicodeEncoder 或直接调用 Encoding.Unicode
return new UnicodeEncoding().GetBytes(input);
// 或者更简洁的方式(取决于运行环境)
// return Encoding.Unicode.GetBytes(input); 

ASCII 编码

仅适用于纯英文字符,若包含中文等特殊符号,转换结果可能会发生错误或使用替换字符替代。

return Encoding.ASCII.GetBytes(input);

核心注意事项

  1. 内存开销:生成字节数组会在内存中开辟新空间,对于超大文本建议分批处理。
  2. 编码一致性:发送方和接收方必须约定相同的编码格式(如都使用 UTF-8),否则会导致乱码。
  3. 空值检查:虽然 GetBytes(null) 在某些语境下会引发 ArgumentNullException,但在生产环境中建议在传入前校验字符串是否为空。

以上就是C#实现字符串转换成字节数组的详细代码示例,更多关于C#数据处理的知识,欢迎持续关注本站后续文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。