如何将汉字转化为拼音?Google上找到Unicode汉字对应的拼音列表

发布时间:2021-07-14 来源: 万汇智联 浏览次数:

最近有必要在车上加个蓝牙电话簿功能。最重要的功能之一是通过人名的拼音或首字母来查询电话簿。更好的实现方式是先将电话簿中的中文姓名转换为拼音,拼音对应第一个字母,再匹配用户输入的拼音串。如果匹配成功,将显示电话簿中的匹配记录。所以第一个问题就是解决汉字转拼音的问题。怎么把汉字转成拼音?

最好的期望是有一个拼音对应的汉字列表汉字_拼音和unicode的查询api接口源代码,里面列出了每个汉字对应的拼音。通过这个列表,考虑到复音字的存在,可以比较快的得到一个汉字对应的拼音。 , 一个汉字可能对应多个拼音,所以这张表的设计一定是一对多的关系,这里分析,如何实现这个汉字对应拼音列表是关键。

还好在Google上找到了Unicode汉字对应的拼音列表。感谢原作者Koichi Yasuoka的辛勤工作和分享。

截取文件的部分内容如下:

#
#	Name:            Unicode Pinyin table
#	Unicode version: 1.1
#	Table version:   0.496
#	Table format:    Format A
#	Date:            18 August 1997
#	Author:          Koichi Yasuoka 
#
#	General notes:
#
#	This table contains the data on how Unicode Hanzi characters
#	are pronounced in P.R.China.  This table was originally based
#	on "TONEPY.tit" by Yongguang Zhang .  Here
#	the author expresses his appreciation to Christian Wittern
#	, Jim Breen ,
#	and Jack Halpern .
#
#	Format:  Six tab-separated columns
#	         Column #1 is the Unicode (in hex)
#	         Columns #2 to #6 are Pinyin (tone '5' means Qingsheng)
#
#	The entries are in Unicode order.
#
#
3007	ling2
4E00	yi1
4E01	ding1
4E02	kao3
4E03	qi1
4E04	shang4	shang3
4E05	xia4
4E06
4E07	wan4	mo4
4E08	zhang4
4E09	san1
4E0A	shang4	shang3
4E0B	xia4
4E0C	ji1
4E0D	bu4
4E0E	yu3	yu4
4E0F	mian3

文件按照 Unicode 编码的顺序组织。每行第一列是Unicode汉字的十六进制编码,第二列至第N列是所有拼音串对应的汉字。拼音后的1-5个数字为拼音声调。

为什么用Unicode而不是GB2312,因为GB2312包含的汉字只包含99.75%的中国大陆使用频率。对于出现在姓名、古汉语等中的一些稀有字符汉字_拼音和unicode的查询api接口源代码,GB2312不能表示. Unicode 收录的汉字会更加全面,包括一些古字和稀有字都可以表达。因此,这里使用了Uincode,这样即使电话簿中的姓名包含一些罕见的汉字,也可以对其进行处理。