汉字区位码获取

区位码:

区位码是与汉字一一对应的编码,用四位数字表示,
前两位从01 到94称区码,后两位从01到94称位码。 一个汉字的前一半是 ASCⅡ码为“160+区码”的字符,
后一半是ASCⅡ码为“160+ 位码”的字符。'例如:“刘”的区位码是 3385,
其意为区码33位码85,它是由ASCⅡ码为160+33=193和160+85=245的两个字符组成。

 

 C#代码实现

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

//Regex的命名空间
using System.Text.RegularExpressions;

namespace GetCodeByChinese
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnGetCode_Click(object sender, EventArgs e)
        {
            Regex reg = new Regex("[\u4e00-\u9fa5]");
            if(reg.Matches(textBoxChinese.Text).Count>1)//判断输入汉字的个数
            {
                MessageBox.Show("请输单个汉字","提示!");
                return;
            }
            if(!reg.IsMatch(textBoxChinese.Text))//判断是否是汉字
            {
                MessageBox.Show("请输入汉字", "提示!");
                return;
            }
            byte[] arr = new byte[2];//
            arr = Encoding.Default.GetBytes(textBoxChinese.Text);
            int front = (short)(arr[0] - '\0');
            int back = (short)(arr[1] - '\0');
            textBoxCode.Text = Convert.ToString(front - 160) + Convert.ToString(back - 160);

        }
    }
}

 效果图:

 

posted @ 2018-12-14 10:54  随时静听  阅读(2027)  评论(0编辑  收藏  举报