• 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
  • 相关阅读:
    IfcExternalReference
    IOException
    IfcExternalInformation
    IfcConnectionGeometry
    netty系列之:netty初探
    netty系列之:Event、Handler和Pipeline
    netty系列之:netty中的Channel详解
    防踩坑日记(一)(ES)elasticsearch中的对象QueryBuilder同时使用should和must查询不成功
    netty系列之:netty中的ByteBuf详解
    netty系列之:netty架构概述
  • 原文地址:https://www.cnblogs.com/hantianwei/p/1571264.html
Copyright © 2020-2023  润新知