zoukankan      html  css  js  c++  java
  • C#字符串、字节数组和内存流间的相互转换

    定义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);
  • 相关阅读:
    python 如何把在字符串里面的名字变成变量,进行复制
    2017-05-30 英语
    RYU 中如钩构建TCP数据包,设置ACK等标志
    Arch linux LXR 安装过程
    ubuntu如何配置lxr
    2017-05-27 英语
    Emacs学习笔记:移动
    9.特殊矩阵的压缩存储
    13.链路层设备
    9.CSMA_CD协议
  • 原文地址:https://www.cnblogs.com/ChineseMoonGod/p/10126288.html
Copyright © 2011-2022 走看看