16進数と漢字フォーマットの交換

2161 ワード

View Code 
           /// 
         ///       16  
         /// 
         /// 
         /// 
         public static string GetHexFromChs(string s)
         {
             if ((s.Length % 2) != 0)
             {
                 s += " ";//  
                 //throw new ArgumentException("s is not valid chinese string!");
             }
 
             System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");
 
             byte[] bytes = chs.GetBytes(s);
 
             string str = "";
 
             for (int i = 0; i < bytes.Length; i++)
             {
                 str += string.Format("{0:X}", bytes[i]);
             }
 
             return str;
         }
         /// 
         ///  16       
         /// 
         /// 
         /// 
         public static string GetChsFromHex(string hex)
         {
             if (hex == null)
                 throw new ArgumentNullException("hex");
             if (hex.Length % 2 != 0)
             {
                 hex += "20";//  
                 //throw new ArgumentException("hex is not a valid number!", "hex");
             }
             //     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");
                 }
             }
 
             //    GB2312,Chinese Simplified。
             System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");
 
 
             return chs.GetString(bytes);
         }