汉字数据字典

如何获取全部汉字及汉字的详细信息?

刚刚扒了一通汉字完整的数据字典,mark作下记录。

所有汉字集合

我们匹配中文字符时,经常使用Unicode字符"[^\u4e00-\u9fa5]"正则表达式来校验。

十六进制,从4e00到9fa5,转化为十进制后,可知共有20901个汉字。

汉字的集合,是开源的,可以直接从网上获取。

从以上链接中,下载汉字集合

获取汉字信息

汉字的详细信息,包括拼音/笔画数/部首/五笔输入/笔顺编号/注解

网上有相应的新华字典Api接口,这里选的是聚合平台-新华字典

通过他的C#源码,我们可以获取到汉字字典的详细信息

详细数据请点击下载

PS:

  • 部首和五笔都有为空,部首返回的数据为:"难检字"。
  • 笔顺编号可通过返回的简解中得到。笔顺编号,即指每个笔画对应的号码,这个非常有用!

聚合接口-汉字

获取汉字:

 1         public static HanziDetail FindHanzi(string hanzi)
 2         {
 3             //1.根据汉字查询字典
 4             string url1 = "http://v.juhe.cn/xhzd/query";
 5
 6             var parameters1 = new Dictionary<string, string>();
 7
 8             parameters1.Add("word", hanzi); //填写需要查询的汉字,UTF8 urlencode编码
 9             parameters1.Add("key", "XXXXXX");//你申请的key
10             parameters1.Add("dtype", ""); //返回数据的格式,xml或json,默认json
11
12             string result2 = SendPost(url1, parameters1, "get");
13
14             var hanziRequestResponse = JsonConvert.DeserializeObject<HanziRequestResponse>(result2);
15
16             //HanziDetail hanziDetail = null;
17             //if (hanziRequestResponse.ErrorCode == "0" && hanziRequestResponse.Result != null)
18             //{
19             //    hanziDetail = hanziRequestResponse.Result;
20             //}
21
22             return hanziRequestResponse.Result;
23         }
24     }

解析类:

 1     [DataContract]
 2     public class HanziRequestResponse
 3     {
 4         [DataMember(Name = "reason")]
 5         public string Reason { get; set; }
 6
 7         [DataMember(Name = "error_code")]
 8         public string ErrorCode { get; set; }
 9
10         [DataMember(Name = "result")]
11         public HanziDetail Result { get; set; }
12     }
13     [DataContract]
14     public class HanziDetail
15     {
16         [DataMember(Name = "zi")]
17         public string Hanzi { get; set; }
18
19         /// <summary>
20         /// 部首
21         /// </summary>
22         [DataMember(Name = "bushou")]
23         public string Radical { get; set; }
24
25         /// <summary>
26         /// 拼音
27         /// </summary>
28         [DataMember(Name = "pinyin")]
29         public string Pinyin { get; set; }
30
31         /// <summary>
32         /// 笔画数
33         /// </summary>
34         [DataMember(Name = "bihua")]
35         public string Bihua { get; set; }
36
37         /// <summary>
38         /// 五笔
39         /// </summary>
40         [DataMember(Name = "wubi")]
41         public string WuBi { get; set; }
42
43         /// <summary>
44         /// 极简介绍
45         /// </summary>
46         [DataMember(Name = "jijie")]
47         public List<string> SimpleDetailContent { get; set; }
48     }

详细的源码Demo,可点击下载

原文地址:https://www.cnblogs.com/kybs0/p/9484347.html

时间: 2024-10-20 11:58:31

汉字数据字典的相关文章

使用聚合接口获取汉字数据字典

原文:使用聚合接口获取汉字数据字典 如何获取全部汉字及汉字的详细信息? 刚刚扒了一通汉字完整的数据字典,mark作下记录. 所有汉字集合 我们匹配中文字符时,经常使用Unicode字符"[^\u4e00-\u9fa5]"正则表达式来校验. 详细的汉字字符集列表可参考: 具体的汉字对应的字符,可查询汉字字符集编码查询网站 基本汉字中从4e00到9fa5,十六进制转化为十进制后,可知共有20902个汉字. 汉字的集合,是开源的,可以直接从网上获取. 百度文库-中国汉字大全 Github-H

数据字典实现缓存

数据字典的好处很多比如: 1.可以减少使用表,来专门记录类型. 2.类型使用key检索,或者报表统计分析,在一定程度上相比汉字来讲,效率好得多. 3.使用缓存的数据字典.也可以减少不少的io操作. 等等.... 首先,库表设计就智者见智了.不多说.爱怎么设计就怎么设计. 完整的数据字典设计 ,需要 1.生成select 自定义标签. 2.list页面,或者get页面, 一个key转 value的标签 使用自定义标签,搭配上缓存的数据字典是最方便.最完美的解决办法, 接下来,就直接贴代码了. 一.

js实现关于数据字典的使用和数据存放的策略

项目中的页面经常会和数据字典的值进行查询,一个一个去用ajax去请求,无疑很浪费时间,当时我的想法是做一个js的工具类,里面放这么几个方法, 1.getAll()                         //用ajax获得所有数据 2.findTypeData(type)    //按type把数据查询出来 3.findNameById(type,id)          //按type和id得到汉字的值 经过一段时间的使用,确实方便了挺多,但是,每次加载页面时都要去getAll()一下

JavaScript 汉字与拼音互转终极方案 附JS拼音输入法

前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字典文件,无法根据实际需要满足需求. 综上,我精心整理并修改了网上几种常见的字典文件并简单封装了一下可以直接拿来用的工具库. 代码和DEMO演示 github项目地址:https://github.com/liuxianan/pinyinjs 完整demo演示:http://demo.liuxiana

JS版汉字与拼音互转终极方案,附简单的JS拼音输入法

原文:http://www.cnblogs.com/liuxianan/p/pinyinjs.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字典文件,无法根据实际需要满足需求. 综上,我精心整理并修改了网上几种常见的字典文件并简单封装了一下可以直接拿来用的工具库. 这篇文章差不多一个月前就写好了大部分了,但是就差拼音输入法这一块一直没时

Java_开源框架_JPinyin汉字转拼音的Java开源库

本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/50039339 1.介绍 JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进.[JPinyin主要特性]1.准确.完善的字库:Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字:2.拼音转换速度快:经测试,转换Unicode编

JS版汉字与拼音互转终极方案,附简单的JS拼音

前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字典文件,无法根据实际需要满足需求. 综上,我精心整理并修改了网上几种常见的字典文件并简单封装了一下可以直接拿来用的工具库. 代码和DEMO演示 github项目地址:https://github.com/liuxianan/pinyinjs 完整demo演示:http://demo.liuxiana

数组中hashCode就是内存地址,以及汉字幻化为16进制或10进制

int[] arr4={1,2,3,4,5}; System.out.println("arr4: "+arr4); System.out.println("arr4.hashCode: "+arr4.hashCode()); //将hashCode值转化为16进制的两种方式 System.out.println(Integer.toString(366712642,16));//将整数转化为16进制的数为:15db9742 System.out.println(I

数据字典+匿名委托模拟switch/case功能

基本思想每个case的选择值作为键,处理过程做成函数委托存放进数据字典.用的时候根据之调用.下面上代码 封装的FuncSwitcher类 using System; using System.Collections.Generic; namespace Test {     class FuncSwitcher<T>     {         int count;         Dictionary<T, Delegate> FuncGather;         Delega