zoukankan      html  css  js  c++  java
  • C# 中关于汉字与16进制转换的代码

    /// <summary>
        
    /// 从汉字转换到16进制
        
    /// </summary>
        
    /// <param name="s"></param>
        
    /// <returns></returns>
        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;
        }
        
    /// <summary>
        
    /// 从16进制转换成汉字
        
    /// </summary>
        
    /// <param name="hex"></param>
        
    /// <returns></returns>
        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 * 22),
                        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);
        }
    wq r
  • 相关阅读:
    简明Python3教程 12.问题解决
    简明Python3教程 11.数据结构
    【SPOJ 694】Distinct Substrings
    【codeforces Manthan, Codefest 17 C】Helga Hufflepuff's Cup
    【CF Manthan, Codefest 17 B】Marvolo Gaunt's Ring
    【CF Manthan, Codefest 17 A】Tom Riddle's Diary
    【SPOJ 220】 PHRASES
    【POJ 3261】Milk Patterns
    【POJ 3294】Life Forms
    【POJ 1226】Substrings
  • 原文地址:https://www.cnblogs.com/hantianwei/p/1571264.html
Copyright © 2011-2022 走看看