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

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

转载请注明出自朱朱家园

区位码用四位数字表示,前两位称区码(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;//将字节数组的第一位160int back = (short)(pArray[1] – '\0') – 160;//将字节数组的第二位160pCode = 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;}转载请注明出自朱朱家园

有一些穿高跟鞋走不到的路,

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

相关文章:

你感兴趣的文章:

标签云: