码迷,mamicode.com
首页 > Windows程序 > 详细

c#区位码与汉字相互转换

时间:2015-02-23 23:42:09      阅读:396      评论:0      收藏:0      [点我收藏+]

标签:

c#区位码与汉字相互转换

转载请注明出自朱朱家园http://blog.csdn.net/zhgl7688

区位码用四位数字表示,前两位称区码(01到94),后两位称位码(01到94)。

一个汉字的前一半是ASCII码为“160+区码”的字符,后一半是ASCII友为“160+位码”的字符。

汉字转区位码的过程:

首先得到汉字的字节数组,将字节数组的第一位和第二位分别减160,再连接成字符串就组成汉字区位码。

        /// <summary>
        /// 汉字转区位码方法
        /// </summary>
        /// <param name="chinese">汉字</param>
        /// <returns>区位码</returns>
        public string ChineseToCoding(string chinese)
        {
            string pCode = "";
            byte[] pArray = new byte[2];
            pArray = Encoding.Default.GetBytes(chinese);//得到汉字的字节数组
            int front = (short)(pArray[0] - '\0')-160;//将字节数组的第一位160
            int back = (short)(pArray[1] - '\0') - 160;//将字节数组的第二位160
            pCode = front.ToString() + back.ToString();//再连接成字符串就组成汉字区位码
            return pCode;
        }

区位码转汉字的过程:

首先将区位码分为两部分,前两位和后两位分别加160,再存入字节数组,最后转成汉字。

        /// <summary>
        /// 区位码转汉字方法
        /// </summary>
        /// <param name="coding">区位码</param>
        /// <returns>汉字</returns>
        public string CodingToChinese(string coding)
        {
            string chinese = "";

            byte[] pArray = new byte[2];
            string front = coding.Substring(0, 2);//区位码分为两部分
            string back = coding.Substring(2, 2);
            pArray[0] = (byte)(Convert.ToInt16(front) + 160);//前两位加160,存入字节数组
            pArray[1] = (byte)(Convert.ToInt16(back) + 160);//后两位加160,存入字节数组
            chinese = Encoding.Default.GetString(pArray);//由字节数组获得汉字
            return chinese;
       }

转载请注明出自朱朱家园http://blog.csdn.net/zhgl7688



c#区位码与汉字相互转换

标签:

原文地址:http://blog.csdn.net/zhgl7688/article/details/43919603

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!