设为首页 加入收藏

TOP

pinyin.c与Unicode汉字编码表 对应起来看
2014-11-23 21:37:35 来源: 作者: 【 】 浏览:9
Tags:pinyin.c Unicode 汉字 码表 对应 来看

Unicode汉字编码表(一部分)

U+ 0 1 2 3 4 5 6 7 8 9 A B C D E F
-----------------------------------------------------
4e00 一 丁 七 万 丈 三 上 下 丌 不 与
4e10 丐 丑 专 且 丕 世 丘 丙 业 丛 东 丝 丞
4e20 丢 两 严 丧 丨 个 丫 丬 中
4e30 丰 串 临 丶 丸 丹 为 主 丼 丽 举 丿
4e40 乃 久 乇 么 义 之 乌 乍 乎 乏
4e50 乐 乒 乓 乔 乖 乘 乙 乜 九 乞 也
4e60 习 乡 书 乩
4e70 买 乱 乳 乾
4e80 了 予 争 事 二 亍 于 亏
---------------------------------------------------

pinyin.c(这里面存的是常用汉字拼音首字母)

// unicode 中汉字的范围[\u4e00 - \u9fa5]。。这里是一部分

#define HANZI_START 19968

#define HANZI_COUNT 20902


static char firstLetterArray[HANZI_COUNT] =

"ydkqsxnwzssxjbymgcczqpssqbycdscdqldylybssjgyqzjjfgcclzznwdwzjljpfyynnjjtmynzwzhflzppqhgccyynmjqyxxgd"

"nnsnsjnjnsnnmlnrxyfsngnnnnqzggllyjlnyzssecykyyhqwjssggyxyqyjtwktjhychmnxjtlhjyqbyxdldwrrjnwysrldzjpc"

"bzjjbrcfslnczstzfxxchtrqggddlyccssymmrjcyqzpwwjjyfcrwfdfzqpyddwyxkyjawjffxjbcftzyhhycyswccyxsclcxxwz"

"cxnbgnnxbxlzsqsbsjpysazdhmdzbqbscwdzzyytzhbtsyyfzgntnxjywqnknphhlxgybfmjnbjhhgqtjcysxstkzglyckglysmz"

"xyalmeldccxgzyrjxjzlnjzcqkcnnjwhjczccqljststbnhbtyxceqxkkwjyflzqlyhjxspsfxlmpbysxxxytccnylllsjxfhjxp"

"jbtffyabyxbcczbzyclwlczggbtssmdtjcxpthyqtgjjxcjfzkjzjqnlzwlslhdzbwjncjzyzsqnycqynzcjjwybrtwpyftwexcs"

。。。。。。

。。。。

char pinyinFirstLetter(unsigned short hanzi)

{

int index = hanzi - HANZI_START;

if (index >= 0 && index <= HANZI_COUNT)

{

return firstLetterArray[index];

}

else

{

return hanzi;

}

}

-------------------

这个函数主要基于一个巨大的c语言char数组,把unicode字符集中所有中文的拼音首字母都映射进去了。

pinyinFirstLetter基于这么一个简单的原理:我们知道,在Objective C语言中,字符串是以unicode进行编码的。在unicode字符集中,汉字的编码范围为4E00 到 9FA5 之间(即从第19968开始的20902个字符是中文简体字符)。我们把这些字符的拼音首字母按照顺序都存放在一个char数组中。当我们查找一个汉字的拼音首字母时,只需把这个汉字的unicode码(即char强制转换为int)减去19968,然后用这个数字作为索引去找char数组中存放的字母即可。


----------------------------------------- 4e00对应的就是19968/一。。。。4e01 对应的就是19969/丁。。。4e02对应的就是19970/ 。。。。。类推。。。。



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Objective-c官方文档 封装数据属性 下一篇STM32 DMA 应用之(一)SRAM 与flas..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: