zoukankan      html  css  js  c++  java
  • 【C#Winforms】汉字编码<>汉字,汉字区位码<>汉字,ASCII码 Charles

    【汉字编码】算法:
          1,获取Encoding对象(参数:编码-gb2312)
          2,通过该对象,获取字节数组
          3,将第一个字节左移位(<<8),并强制转换为int
          4,将的得到的数据与强制转换后的第二个字节相加
    可以用相反的方法从【汉字编码】还原到【汉字】

    【汉字区位码】算法:
           1,获取自己数组(同上)
           2,将第一个字节强制转换后-160 转换成 字符串
           3,将第二个字节强制转换后-160 转换成字符串
           4,将2,3得到的字符串相加,即得到区位码
    使用相反的方法从【汉字区位码】 还原到 【汉字】

    附:【键盘符号ASCII编码】算法
           1,获取unicode编码的字节数组的第1个字节即可(byte[0]);

    下面是汉字区位码的获取程序:
    (汉字区位码,就是日常我们考试时需要填写的名字对应的那一段数字)
    (对应算法看程序更容易理解)
      
    private void btn_Get_Code_Click(object sender, EventArgs e)
            {
                string s_chinese = this.txb_chinese.Text;
                byte[] code = Encoding.Default.GetBytes(s_chinese);
                short front = (short)(code[0] - '\0'); //这里(short)code[0]也是可以的
                short back = (short)(code[1] - '\0');
                string codes = (front - 160).ToString() + (back - 160).ToString();
                this.txb_code.Text = codes;
            }
    以上程序来自明日开发实例1200例中的一段代码,下面的代码通过反向推导实现区位码到汉字的转换:

            private void btn_retchinese_Click(object sender, EventArgs e)
            {
                int P_chicode = int.Parse(this.txb_code.Text);
                int front = P_chicode / 100;
                int back = P_chicode % 100;
                front += 160;
                back += 160;
                byte[] mbyte = new byte[2] {(byte)front, (byte)back };
                string chinese = Encoding.Default.GetString(mbyte);
                this.txb_rchinese.Text = chinese;
            }

            相比之下,java似乎更简洁一点:String chinese=new String(mbyte,"GB2312");这样就获取到了 区位码 对应的 汉字。

  • 相关阅读:
    (转)分布式加载网站的静态文件
    (转)一步一步Asp.Net MVC系列_权限管理设计起始篇
    (转)SQL Server复制入门(一)复制简介
    (转)【配置属性】—Entity Framework实例详解
    (转)动态Entity Framework查询:Dynamic Query 介绍
    (转)用扩展方法优化多条件查询
    (转)一步一步Asp.Net MVC系列_权限管理之权限控制
    (转 )Entity Framework Code First使用者的福音 EF Power Tool使用记之二(问题探究)
    (转)【工欲善其事必先利其器】—Entity Framework实例详解
    (转)C#/winform 腾讯QQ注册
  • 原文地址:https://www.cnblogs.com/shenchaoming/p/2264553.html
Copyright © 2011-2022 走看看