首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# byte[]→string→byte[]问题

c# byte[]→string→byte[]问题
EN

Stack Overflow用户
提问于 2015-09-09 15:54:59
回答 1查看 95关注 0票数 0

我另一个奇怪的问题。

我有这样的代码:

代码语言:javascript
复制
byte[] chks = Get64bitData();
string str = Encoding.UTF8.GetString(chks);
byte[] bts = Encoding.UTF8.GetBytes(str); 

方法Get64bitData返回8字节数组,然后数组转换为字符串。然后代码再次将字符串转换为字节数组,但是新数组现在具有16字节!

这是什么类型的地狱,如何避免它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-09 15:57:03

任何随机的byte[]都不能像您看到的那样安全地转换为文本。使用Convert.ToBase64String或BitConverter.ToString将字节数组转换为字符串。

代码语言:javascript
复制
byte[] chks = Get64bitData();
string str = Convert.ToBase64String(chks);
byte[] bts = Convert.FromBase64String(str);

或者在SoapHexBinary中使用System.Runtime.Remoting.Metadata.W3cXsd2001类

代码语言:javascript
复制
byte[] chks = Get64bitData();
string str = new SoapHexBinary(chks).ToString();
byte[] bts = SoapHexBinary.Parse(str).Value;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32484197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档