首页 > 解决方案 > 将字符串转换为字节数组,反之亦然

问题描述

将字符串转换为字节数组然后再改回来有时不会返回相同的字符串:

RandomNumberGenerator gen = new RNGCryptoServiceProvider();
byte[] randomBytes = new byte[32];
gen.GetBytes(randomBytes);

在某些情况下(或除 unicode 之外的任何类型的编码):

randomBytes != Encoding.Unicode.GetBytes(Encoding.Unicode.GetString(randomBytes));

我想知道如何执行此方法并确保获得相同的结果。提前致谢

标签: c#encoding

解决方案


您可能不是在寻找文本编码,而是在寻找序列化格式。文本编码适用于文本。您正在处理的字节是随机字节。

Base64 ( Convert.ToBase64String) 是否适合您?

您也可以将字节塞入字符 ( new string(myBytes.Select(b => (char)b).ToArray()))。这将产生容易被其他系统破坏的不可读字符串。可能不是正确的道路。


推荐阅读