引言

我前几天写了一篇随笔“随机生成常用汉字(再次改进版)”。园友“菜菜灰”评论说“看着太累,不认识的字还是多,代码也很多,几段代码显示2万多汉字”,并给出了相应的 C# 代码:

1 System.Text.StringBuilder sb = newSystem.Text.StringBuilder();2 sb.Append("


");3 for (int i = 19968; i < 40869; i++)4 {5 sb.Append(((char)i).ToString());6 }7 sb.Append("


");8 Response.Write(sb.ToString());

上述代码给出了 20,901 个汉字。

GB 13000 的字符集包含 20,902 个汉字,其 Unicode 编码从 0x4E00 到 0x9FA5,即从 19,968 到 40,869。所以上述代码有点小问题,第3行的“

生成 GB13000 字符集的 C# 程序

下面就是经过修改后的 C# 程序:

1 usingSystem;2 usingSystem.Text;3

4 sealed classGB13000Creator5 {6 static voidMain()7 {8 Console.WriteLine(GetGB13000String());9 }10

11 static stringGetGB13000String()12 {13 var sb = newStringBuilder();14 for (var i = 19968; i <= 40869; i++) sb.Append((char)i);15 returnsb.ToString();16 }17 }

其实,以下程序也实现完全相同的功能:

1 usingSystem;2

3 sealed classGB13000Creator4 {5 static voidMain()6 {7 Console.WriteLine(GetGB13000String());8 }9

10 static stringGetGB13000String()11 {12 var gb = new char[20902] ;13 for (var i = 0; i < gb.Length; i++) gb[i] = (char)(i + 19968);14 return new string(gb);15 }16 }

这个程序应该比前一个运行速度快点儿。

编译和运行

在 Arch Linux 的 Mono 2.10.8 环境下编译和运行:

work$ dmcs GB13000Creator.cs && mono GB13000Creator.exe

一丁丂七丄丅丆万丈三上下丌不与丏丐丑丒专 ... 龒龓龔龕龖龗龘龙龚龛龜龝龞龟龠龡龢龣龤龥

上述运行结果就是 GB 13000 字符集的 20,902 个汉字。

进一步的说明

其实 GB 13000 这个国家标准已经有点过时了,现行的国家标准是 GB 18030,全称:国家标准 GB 18030-2005《信息技术 中文编码字符集》,是中华人民共和国现时最新的内码字集,是GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》的修订版。与 GB 2312-1980 完全兼容,与 GBK 基本兼容,支持 GB 13000 及 Unicode 的全部统一汉字,共收录汉字 70,244 个。本规格的初版是由中华人民共和国信息产业部电子工业标准化研究所起草,由国家质量技术监督局于2000年3月17日发布。现行版本为国家质量监督检验总局和中国国家标准化管理委员会于2005年11月8日发布,2006年5月1日实施。此规格为在中国境内所有软件产品支持的强制规格。

不知道有没有简单的方法生成 GB 18030 规定的这 70,244 个汉字?

参考资料

java gb13000_浅谈 GB13000相关推荐

  1. 解耦 多态性 java_Java的多态浅谈,Java多态浅谈网站安全分享!

    Java的多态浅谈概述Java的四大基本特性:抽象,封装,继承和多态.其中,抽象,封装,继承可以说多态的基础,而多态是封装,继承的具体表现.如果非要用专业术语来描述什么是多态的话 多态是指程序中定义的 ...

  2. 【Java】浅谈关于代码的耦合性

    [Java]浅谈关于代码的耦合性 前言 一.需求 二.简单的实现 1.资源代码(项目提供) 2.对需求的普通实现 三.利用业务与逻辑分离的方式实现 改进 四.对需求改进后的同步项目改进(优点) 总结 ...

  3. java学习方法-浅谈软件开发的神速进步

    中国人大都喜欢用武侠小说来比较软件开发,但是在实战武功中,只有葵花宝典才是最厉害的,也只有掌握了葵花宝典,才能称为"不败". 1浅谈软件开发的神速进步 1.1什么才是软件开发的葵花 ...

  4. java easing_浅谈jQuery animate easing的具体使用方法(推荐)

    从jQuery API 文档中可以知道,jQuery自定义动画的函数.animate( properties [, duration] [, easing] [, complete] )有四个参数: ...

  5. ajax长轮询 java web_浅谈Websocket、Ajax轮询和长轮询(long polling)

    浅谈Websocket.Ajax轮询和长轮询(long p0ll) 最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket W ...

  6. 【java】浅谈注释

    java中的注释可以分为三大类:行注释.块注释以及文档注释 行注释: 基本语法: //注释的内容 产生 效果:该行//之后的内容就都被注释了 块注释: 基本语法: /* 注释内容 */ 注:块注释禁止 ...

  7. java fork_浅谈Java的Fork/Join并发框架

    前几天有写到整合并发结果的文章,于是联想到了Fork/Join.因为在我看来整合并发结果其实就是Fork/Join中的Join步骤.所以今天我就把自己对Fork/Join一些浅显的理解记录下来. 1. ...

  8. java集合浅谈(一)

    一.类库结构图概览 容器对象仅能持有对象引用(对象的指针),而不是Copy对象信息,从网上搜得几张Java中集合类库的结构图,如下所示: 二.解说Collection 2.1 Collection ( ...

  9. 浅谈java spring_浅谈Spring(一)

    Spring是当前比较流行的基于Java语言的MVC框架,所谓框架也就是它已经实现好了诸多东西,使java开发人员能把精力尽量放在业务逻辑上. Spring技术的特点是IOC, 即反向注入,主要应用的 ...

最新文章

  1. ASP.NET C# 货币转换函数 中文大写金额 英文金额
  2. IQ01/IQ02 Create/Change Material Serial Number BAPI
  3. css默认样式以及解决办法
  4. 使用流进行通讯的一种可能犯的错误 (InputStream + OutputStream)
  5. 全国计算机机专业考试试题,2010全国非计算机专业一级考试试题
  6. 查找文章中出现频率最高的单词
  7. 严版快速排序Partion方法
  8. CodeForces 489A SwapSort (选择排序法)
  9. CentOS下MYSQL数据库的安装
  10. ggplot2:可视化设计师的神器,了解一下
  11. vtkdelaunay3d的参数设置_VTK 渲染体数据并加方位标注
  12. S4 HANA BP 维护客户信贷管理数据
  13. 把系统桌面设置到D盘
  14. Jsp 页面白页问题
  15. 微信公众号抢票系统开发笔记
  16. layui前端项目打包方法_layui封装模块基础教程
  17. android 的导入crosswalk 用xwalkview 替换webview
  18. 技术管理者的困惑——技术与管理应该如何平衡?
  19. IP54、IP67、IP6K7K、IP6K9K代表什么意思?
  20. Putty的安装和使用

热门文章

  1. 目录与文件的相关操作
  2. java List集合转换为List Map集合
  3. java.lang.NoSuchMethodError: org.springframework.beans.MutablePropertyValues.add
  4. pycharm中更新pip版本的问题
  5. mongoose 定义经纬度数据类型
  6. mongoose populate 返回 指定 字段
  7. consul通过web接口的kv存储操作
  8. mysql originator_MySQL数据库事件调度(Event)
  9. py语法错误与异常处理
  10. (Java) 线程池