c# - 在 C# 中将字节数组转换为字符串,反之亦然
问题描述
我想将一个字节数组转换为字符串,然后将其转换回字节数组。我的代码是:
byte[] data = { 250, 15, 1, 220, 127 };
var s = Encoding.Unicode.GetString(data);
var b = Encoding.Unicode.GetBytes(s);
但是,运行代码后 data 和 b 不相等,我也尝试了 UTF7、UTF8、UTF32 和 ASCII 编码。他们都没有正常工作。唯一有效的选项是默认编码。据我所知,它可以从一个系统到另一个系统有所不同,那么我该如何明确定义我的问题的编码?
解决方案
使用文本编码将任意、完全随机的字节数组转换为字符串不是一个好主意,因为这仅在字节实际表示有效文本时才有效,正如您的示例所示,这显然不是真的。
改用 Base64Encoding!
Convert.ToBase64String(参见https://msdn.microsoft.com/de-de/library/8f9a8s97(v=vs.110).aspx) Convert.FromBase64String(参见https://msdn.microsoft.com/en-us /library/system.convert.frombase64string(v=vs.110).aspx )
推荐阅读
- angular - Ng-select 样式问题
- react-native - 是否可以使用 Animated API 在 react-native 中控制 Animated.Scrollview 的滚动位置?
- python-3.x - 我可以使用 Python 脚本代替 chrome 扩展吗?
- jquery - 仅在关闭选择器framework7时如何执行功能?
- ruby-on-rails - Ruby - 返回 200 状态的路由
- java - 为什么流过滤器在下面的代码片段中不起作用
- java - 使用 Java 11 HttpClient 读取分块数据
- java - StreamingResponseBody 文件下载不适用于 Firefox
- python - 在一个文件的两行之间复制代码并在另一个文件的相同两行之间覆盖
- jquery - 无法理解为什么 typed.js 不起作用