Chinaunix首页 | 论坛 | 博客
  • 博客访问: 571869
  • 博文数量: 208
  • 博客积分: 3286
  • 博客等级: 中校
  • 技术积分: 1780
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-24 20:38
文章分类

全部博文(208)

文章存档

2012年(7)

2011年(28)

2010年(21)

2009年(76)

2008年(65)

2007年(11)

我的朋友

分类:

2009-09-03 17:04:14

C# 中关于汉字与16进制转换的代码
public class chsHex
{
    ///
    /// 从汉字转换到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);
    }
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/TO_YGY/archive/2008/01/09/2031237.aspx
阅读(601) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~