C#字符串、字节数组和内存流间的相互转换 - IT浪潮之巅
2024-08-31 03:34:03
定义string变量为str,内存流变量为ms,比特数组为bt
1.字符串=>比特数组
(1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert.FromBase64String("字符串");
补充:
System.Text.Encoding.Unicode.GetBytes(str);
System.Text.Encoding.UTF8.GetBytes(str);
System.Text.Encoding.GetEncoding("gb2312").GetBytes(str); //指定编码方式
string str = "中国?ss123?";
byte[] bytes = System.Text.Encoding.Default.GetBytes(str); //gb2312编码 汉字占2个字节、英文字母占1个字节 bytes长度为12
string s = System.Text.Encoding.Default.GetString(new byte[] { bytes[0],bytes[1] });//解码后为“中”
byte[] bytes = {97, 98, 99, 100, 101, 102};
string str = System.Text.Encoding.ASCII.GetString(bytes); //结果为:abcdef ASCII码表
常用方法:
GetString 已重载。 在派生类中重写时,将一个字节序列解码为一个字符串。
GetChars 已重载。 在派生类中重写时,将一个字节序列解码为一组字符。
GetBytes 已重载。 在派生类中重写时,将一组字符编码为一个字节序列。 GetByteCount 已重载。 在派生类中重写时,计算对一组字符进行编码所产生的字节数。
GetCharCount 已重载。 在派生类中被重写时,计算对字节序列进行解码所产生的字符数。 GetDecoder 在派生类中重写时,获取一个解码器,该解码器将已编码的字节序列转换为字符序列。
GetEncoder 在派生类中重写时,获取一个解码器,该解码器将Unicode字符序列转换为已编码的字节序列
2.比特数组 => 字符串
(1)string str=System.Text.Encoding.Default.GetString(bt); (2)string str=Convert.ToBase64String(bt);
3.字符串 => 流
(1)MemoryStream ms=new MemoryStream(System.Text.Encoding.Default.GetBytes("字符串")); (2)MemoryStream ms=new MemoryStream(Convert.FromBase64String("字符串"));
4.流 => 字符串
(1)string str=Convert.ToBase64String(ms.ToArray()); (2)string str=System.Text.Encoding.Default.GetString(ms.ToArray());
5.比特数组 => 流
(1)MemoryStream ms=new MemoryStream(bt); (2)MemoryStream ms=new MemoryStream();ms.Read(bt,0,bt.Lenght);
6.流 => 比特数组
(1)byte[] bt=ms.ToArray(); (2)MemoryStream ms=new MemoryStream();ms.Write(bt,0,ms.Length);
最新文章
- 转载:Chrome调试折腾记_(1)调试控制中心快捷键详解!!!
- c#向数据库插入较大数据(SqlBulkCopy)
- QQ音乐API
- cadence 机械孔的制作
- [转]SET NOCOUNT ON
- C#必须掌握的系统类
- Android软键盘弹出时布局问题
- js代码性能优化的几个方法
- Webpack的加载器
- win10 apache配置虚拟主机后localhost无法使用
- JS:onmouseover 、onmouseout
- Linux 清理boot分区
- 内存优化总结:ptmalloc、tcmalloc和jemalloc(转)
- Python3 tkinter基础 Canvas delete 删除画布中的所有图形
- 【mybatis源码学习】mybtias基础组件-反射工具
- mysql查询字段为null 返回0
- 2018年Android面试题含答案--适合中高级(下)
- MySQL中类型后面的数字含义
- 比较undefined和“undefined”
- 看似无参却有参-----JS中的函数传参
热门文章
- selenium IDE的安装及录制回放的简单使用
- webapi 找到了与请求匹配的多个操作(ajax报500,4的错误)
- Comparable和Comparator接口是干什么的?列出它们的区别
- h5 app 设置全屏
- CDH 下线节点
- delphi DBGrid简单自绘(字体颜色、背景等)
- QueryList getData()方法中多次调用来实现递归多级采集。
- bzoj1011题解
- NX二次开发-UFUN返回当前图纸页的Tag函数UF_DRAW_ask_current_drawing
- NX二次开发-UFUN打开二进制STL文件函数UF_STD_open_binary_stl_file