汉字数据字典

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

刚刚扒了一通汉字完整的数据字典,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     }
View Code

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

猜你喜欢

转载自www.cnblogs.com/kybs0/p/9484347.html
今日推荐