字符串与字节数组转换需选正确编码,UTF-8支持多语言,避免ASCII处理中文;互转时编码须一致防乱码,非文本数据推荐用Base64确保完整性。
![.net怎么将字节数组(byte[])和字符串相互转换](https://img.php.cn/upload/article/001/221/864/176215104263298.jpg)
.NET 中将字节数组(byte[])和字符串相互转换,关键在于编码方式的选择。常见的编码有 UTF-8、UTF-16、ASCII 等。下面介绍两种基本操作的方法。
字符串转 byte[]
使用 Encoding 类将字符串按照指定编码转换为字节数组。
- UTF-8 是最常用的编码,支持多语言且兼容性好。
- 避免使用 ASCII 编码处理中文等非英文字符,否则会丢失数据。
示例代码:
string text = "Hello 你好"; byte[] bytes = System.Text.Encoding.UTF8.GetBytes(text);
byte[] 转字符串
将字节数组还原为字符串时,必须使用与编码时相同的 Encoding,否则可能出现乱码。
示例代码:
byte[] bytes = { 72, 101, 108, 108, 111 }; // "Hello" 的 UTF-8 字节
string text = System.Text.Encoding.UTF8.GetString(bytes);
注意:如果字节数组包含非文本数据(如图片、加密数据),直接转字符串会导致不可读字符或信息损坏。这种情况下应使用 Base64 编码保存为字符串。
使用 Base64 作为中间格式(推荐用于二进制数据)
当需要将任意 byte[] 安全地表示为字符串(比如传输或存储),推荐使用 Base64。
示例:
// byte[] 转 Base64 字符串 string base64String = Convert.ToBase64String(bytes); // Base64 字符串转回 byte[] byte[] restoredBytes = Convert.FromBase64String(base64String);这种方式确保数据完整性,适合网络传输、JSON 存储等场景。 基本上就这些。选择合适的方法取决于你处理的是文本还是二进制数据。










