zoukankan      html  css  js  c++  java
  • C#普通字符串与16进制字符串相互转换(包含汉字)

            /// <summary>
            /// 普通转16进制(带汉字)
            /// </summary>
            /// <param name="data"></param>
            public static string Hexdata(string data)
            {
                byte[] b = Encoding.GetEncoding("GB2312").GetBytes(data); ;//按照指定编码将string编程字节数组
    
                string result = string.Empty;
    
                for (int i = 0; i < b.Length; i++)//逐字节变为16进制字符
                {
                    result += Convert.ToString(b[i], 16) + " ";
                }
                return result;
            }
    
            /// <summary>
            /// 16进制转普通字符串(带汉字)
            /// </summary>
            /// <returns></returns>
            public static string data(string Hexdata)
            {
                List<byte> byList = new List<byte>();//实例化list
    
                while (Hexdata != "" && Hexdata != " ")//先判断字符串是否查询结束
                {
                    if (Hexdata.Substring(0, 1) == " ")//判断第一个字符是否为空格
                    {
                        Hexdata = Hexdata.Substring(1, Hexdata.Length - 1);//去掉第一个空格
                    }
                    int y = Hexdata.IndexOf(" ");//查询第一个空格的索引在哪
    
                    byList.Add(Convert.ToByte(Hexdata.Substring(0, y), 16));//将空格前的所有字符转换成ASCII字节数组全部添加进来
    
                    int x = Hexdata.Length;//计算str字符串长度
    
                    Hexdata = Hexdata.Substring(y, x - y);//截取空格后面剩下的字符串
                }
                byte[] byArray = byList.ToArray();//list转化为byte数组
    
                string data = Encoding.Default.GetString(byArray);//bye数组直接转化为字符串
    
                return data;
            }
    

    注:16进制字符串格式为:XX XX XX XX

  • 相关阅读:
    jQuery插件实践之轮播练习(二)
    jQuery插件实践之轮播练习(一)
    AngularJS+Node.js+socket.io 开发在线聊天室
    Ubuntu上部署Ghost博客
    综合架构的简述
    进程
    路由配置
    计算机专用英语词汇1695个词汇表
    Linux打包压缩解压工具
    磁盘知识体系结构
  • 原文地址:https://www.cnblogs.com/LcVong/p/13609252.html
Copyright © 2011-2022 走看看