随机生成汉字

汉字主要分成三个区域

区段 说明 备注
01-09 区分为特殊字符  682个
16-55 一级汉字,按拼音排序 55区最胡5位为空  3755个
56-87 二级汉字,按部首/笔画排序  3008个

 

 

 

 

 

备注:10-15区,88-94区未编码

基础知识

 一个汉字有两个字节,16位,前8位为高位字节,后8位为低为字节     因此一个汉字由  (高高高高0xa0低低低低0xa0)组成

代码演示

  1. 获取所有特殊字符,共682个     
  /// <summary>

        /// 查找所有特殊字符

        /// </summary>

        /// <returns></returns>

        static string GetSpecialStr()

        {

            var list = new List<byte>();

            //特殊字符区号为1-9

            for(int area=1;area<=9;area++)

            {

                for (int site = 1; site <=94; site++)

                {

                    list.Add((byte)(area+0xa0));

                    list.Add((byte)(site+0xa0));

                }

            }

            string result= Encoding.GetEncoding("GB2312").GetString(list.ToArray());

            return result;

        }

        2.取一级字,按拼音排序,一级字为常用字

 

 /// <summary>

        /// 取得一级所有字符(一级字中多为常用字)

        /// </summary>

        /// <returns></returns>

        static string GetOneLevel()

        {

            var list = new List<byte>();

            //16-55区为一级汉字,55区的88-94为空位,未编码

            for (int area = 16; area <= 55; area++)

            {

                for (int site = 1, siteEnd = (area == 55 ? 88 : 94); site < siteEnd; site++)

                {

                    list.Add((byte)(area+160));

                    list.Add((byte)(site+160));

                }

            }

            string result = Encoding.GetEncoding("GB2312").GetString(list.ToArray());

            return result;

        }

 3.获取二级文字

/// <summary>

        /// 取得二级所有字符(二级汉字大多为生僻字)

        /// </summary>

        /// <returns></returns>

        static string GetTwoLevel()

        {

            var list = new List<byte>();

            //56-87区为二级汉字

            for (int area = 56; area <= 87; area++)

            {

                for (int site = 1; site <= 94; site++)

                {

                    list.Add((byte)(area + 0xA0));

                    list.Add((byte)(site + 0xA0));

                }

            }

            string result = Encoding.GetEncoding("GB2312").GetString(list.ToArray());

            return result;

        }

 

 

 

 

 

 

 

 

你可能感兴趣的:(生成)