zoukankan      html  css  js  c++  java
  • 十六进制字符串转化成字符串输出

    ///<summary>
        /// 从16进制转换成汉字
        /// </summary>
        /// <param name="hex"></param>
        /// <param name="charset">编码,如"utf-8","gb2312"</param>
        /// <returns></returns>
        public  string HexToStr(string hex, string charset)
        {
            if (hex == null)
                throw new ArgumentNullException("hex");
            hex = hex.Replace(",", "");
            hex = hex.Replace("
    ", "");
            hex = hex.Replace("\", "");
            hex = hex.Replace(" ", "");
            if (hex.Length % 2 != 0)
            {
                hex += "20";//空格
            }
            // 需要将 hex 转换成 byte 数组。 
            byte[] bytes = new byte[hex.Length / 2];
    
            for (int i = 0; i < bytes.Length; i++)
            {
                try
                {
                    // 每两个字符是一个 byte。 
                    bytes[i] = byte.Parse(hex.Substring(i * 2, 2),
                    System.Globalization.NumberStyles.HexNumber);
                }
                catch
                {
                    // Rethrow an exception with custom message. 
                    throw new ArgumentException("hex is not a valid hex number!", "hex");
                }
            }
            System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);
            return chs.GetString(bytes);
        }
    public string HexToStr(string mHex) // 返回十六进制代表的字符串
            {
                mHex = mHex.Replace(" ", "");
                if (mHex.Length <= 0) return "";
                byte[] vBytes = new byte[mHex.Length / 2];
                for (int i = 0; i < mHex.Length; i += 2)
                    if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, out vBytes[i / 2]))
                        vBytes[i / 2] = 0;
                return ASCIIEncoding.Default.GetString(vBytes);
            }
     public string StrToHex(string mStr) //返回处理后的十六进制字符串
            {
                return BitConverter.ToString(
                ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " ");
            } 
     /// <summary>  
    
            /// 16进制字符串转字节数组  
    
            /// </summary>  
    
            /// <param name="hexString"></param>  
    
            /// <returns></returns>  
    
            public static byte[] strToToHexByte(string hexString)
            {
    
                hexString = hexString.Replace(" ", "");
    
                if ((hexString.Length % 2) != 0)
    
                    hexString += " ";
    
                byte[] returnBytes = new byte[hexString.Length / 2];
    
                for (int i = 0; i < returnBytes.Length; i++)
    
                    returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2).Trim(), 16);
    
                return returnBytes;
    
            }  
  • 相关阅读:
    ESP-12F WIFI模块开发(NonOS, RTOS, NodeMCU固件编译)(原创)
    如何将笔记本上的SD卡接入Ubuntu虚拟机中(原)
    第2步
    第1步
    详解linux下的串口通讯开发 (转载)
    C中如何调用C++函数 (转载)
    ubuntu下安装与使用json-c(原创)
    static, const 和 static const 变量的初始化问题(定义/声明)
    图片三级缓存的原理
    Windows平台下Git服务器搭建
  • 原文地址:https://www.cnblogs.com/xchit/p/4025262.html
Copyright © 2011-2022 走看看