c#中byte[]与string的相互转化

merry_zsp 2016-04-21 04:34:55
RT
我想把一个byte[579]的一维数组转化为字符串插入数据库中
使用的时候读出字符串再转化为byte[]
请问怎么写代码比较安全?
...全文
273 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
merry_zsp 2016-04-22
  • 打赏
  • 举报
回复
引用 10 楼 sp1234 的回复:
[quote=引用 5 楼 merry_zsp 的回复:] SQLite数据库 数据库里面建了个表2个字段 一个是名字 一个是图像信息 问题是图像信息是byte[579]这么大的一维数组 怎么直接存进去再读出来呢?
sqlite 实际上是映射 byte 的,不需要设计为 string 类型。当然如果不知道如何读写 byte[ ] 类型的数据,使用序列化也没有什么问题。[/quote] 我就是不知道如果不转化的话 怎么把数组插入 完了用的时候再取出来
  • 打赏
  • 举报
回复
引用 5 楼 merry_zsp 的回复:
SQLite数据库 数据库里面建了个表2个字段 一个是名字 一个是图像信息 问题是图像信息是byte[579]这么大的一维数组 怎么直接存进去再读出来呢?
sqlite 实际上是映射 byte 的,不需要设计为 string 类型。当然如果不知道如何读写 byte[ ] 类型的数据,使用序列化也没有什么问题。
  • 打赏
  • 举报
回复
例如,可以这样写
var datas = new byte[] { 1, 2, 3, 4, 5, 110, 125, 210, 220, 250, 255 };
var str = Convert.ToBase64String(datas);
var bytes = Convert.FromBase64String(str);
通过调试你可以看到,datas跟bytes 是一样的。
  • 打赏
  • 举报
回复
引用 楼主 merry_zsp 的回复:
RT 我想把一个byte[579]的一维数组转化为字符串插入数据库中 使用的时候读出字符串再转化为byte[] 请问怎么写代码比较安全?
byte 数组可以通过 base64 编码方式序列化为string。
火星大能猫 2016-04-22
  • 打赏
  • 举报
回复
Encoding.UTF8.GetBytes(text); 要根据具体编码来 Encoding.Default.GetBytes(text);
南天空 2016-04-21
  • 打赏
  • 举报
回复
图片一般要么通过二进制存储要么直接用IMAGE类型,序列化存储。
merry_zsp 2016-04-21
  • 打赏
  • 举报
回复
SQLite数据库 数据库里面建了个表2个字段 一个是名字 一个是图像信息 问题是图像信息是byte[579]这么大的一维数组 怎么直接存进去再读出来呢?
tcmakebest 2016-04-21
  • 打赏
  • 举报
回复
楼主是什么数据库不支持直接存byte[]吗, 转换容易乱码.
大鱼> 2016-04-21
  • 打赏
  • 举报
回复
引用 2 楼 shuzhongxiao 的回复:
为什么要转成字符串之后存储呢,直接使用将byte[]存储岂不是更好,使用的时候都不需要再转换。
正解啊,为什么还要转化呢?
shuzhongxiao 2016-04-21
  • 打赏
  • 举报
回复
为什么要转成字符串之后存储呢,直接使用将byte[]存储岂不是更好,使用的时候都不需要再转换。
枫0子K 2016-04-21
  • 打赏
  • 举报
回复
var data = Encoding.UTF8.GetBytes(text);
text = Encoding.UTF8.GetString(data);

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧