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
  • 相关阅读:
    L1-049 天梯赛座位分配​​​​​​​
    L1-046 整除光棍 大数除法
    天梯赛 L1-043 阅览室
    Hdu 1022 Train Problem I 栈
    蓝桥杯 历届试题 格子刷油漆  (动态规划)
    第九届蓝桥杯省赛真题 日志统计
    2018年第九届蓝桥杯第7题 螺旋折线
    2018年第九届蓝桥杯省赛 递增三元组
    蓝桥杯 历届试题 高僧斗法  (尼姆博弈)
    K-th Number
  • 原文地址:https://www.cnblogs.com/hantianwei/p/1571264.html
Copyright © 2011-2022 走看看