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