标签:style blog class code c ext
| 
       1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20 
      21 
      22 
      23 
      24 
      25 
      26 
      27 
      28 
      29 
      30 
      31 
      32 
      33 
      34 
      35 
      36 
      37 
      38 
      39 
      40 
      41 
      42 
      43 
      44 
      45 
      46 
      47 
      48 
      49 
      50 
      51 
      52 
      53 
      54 
      55 
      56 
      57 
      58 
      59 
      60 
      61 
      62 
      63 
      64 
      65 
      66 
      67 
      68 
      69 
      70 
      71 
      72 
      73 
      74 
      75 
      76 
      77 
      78 
      79 
      80 
      81 
      82 
      83 
      84 
      85 
      86 
      87 
      88 
      89 
      90 
      91 
      92 
      93 
      94 
      95 
      96 
      97 
      98 
      99  | 
    
      /// <summary> /// 字符串转16进制字节数组 /// </summary> /// <param name="hexString"></param> /// <returns></returns> private 
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), 16);     return 
returnBytes; } /// <summary> /// 字节数组转16进制字符串 /// </summary> /// <param name="bytes"></param> /// <returns></returns> public 
static string byteToHexStr(byte[] bytes) {     string 
returnStr = "";     if 
(bytes != null)     {         for 
(int 
i = 0; i < bytes.Length; i++)         {             returnStr += bytes[i].ToString("X2");         }     }     return 
returnStr; } /// <summary> /// 从汉字转换到16进制 /// </summary> /// <param name="s"></param> /// <param name="charset">编码,如"utf-8","gb2312"</param> /// <param name="fenge">是否每字符用逗号分隔</param> /// <returns></returns> public 
static string ToHex(string 
s, string 
charset, bool 
fenge) {     if 
((s.Length % 2) != 0)     {         s += " ";//空格         //throw new ArgumentException("s is not valid chinese string!");     }     System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);     byte[] bytes = chs.GetBytes(s);     string 
str = "";     for 
(int 
i = 0; i < bytes.Length; i++)     {         str += string.Format("{0:X}", bytes[i]);         if 
(fenge && (i != bytes.Length - 1))         {             str += string.Format("{0}", ",");         }     }     return 
str.ToLower(); } ///<summary> /// 从16进制转换成汉字 /// </summary> /// <param name="hex"></param> /// <param name="charset">编码,如"utf-8","gb2312"</param> /// <returns></returns> public 
static string UnHex(string 
hex, string 
charset) {     if 
(hex == null)     throw 
new ArgumentNullException("hex");     hex = hex.Replace(",", "");     hex = hex.Replace("\n", "");     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); } | 
C# 16进制与字符串、字节数组之间的转换,布布扣,bubuko.com
标签:style blog class code c ext
原文地址:http://www.cnblogs.com/fredcyt/p/3729765.html