Pinyin4j是Java中的拼音库,作者李民。

拼音这件事其实非常简单,无非是一种映射。但是拼音中包含的学问很多,很多前贤都研究过汉语拼音,提出了多种拼音方案。随着历史变迁,拼音的形式也在不断发生变化,所以设计一个拼音库就需要考虑到拼音的格式、拼音的体系。

一、拼音体系

1、GWOYEU_ROMATZYH

国语拼音起源于民国时期,制作者赵元任、林语堂。

2、HANYU_PINYIN

《汉语拼音方案》,是1958年第一届全国人民代表大会第五次会议正式批准公布的拉丁字母式的汉语拼音方案。但是实际落实到教学和普及使用则是1960年前后,当时有中国文字改革委员会发行的汉语拼音报,此后汉语拼音开始逐步取代了原来的汉字注音字母直至现在汉语拼音在我国的社会各个领域都占有极其重要的地位。

3、MPS2_PINYIN

Mandarin Phonetic Symbols 2 (MPS2) Pinyin system

4、通用拼音

通用拼音,是中国台湾地区的一种中文拉丁化拼音法。由“中央研究院民族学研究所”副研究员余伯泉在1998年发表,后经数次修正,于2000年由台湾教育主管部门宣布使用,并取代原定改用的国语注音符号第二式,台湾当局政府自2002年起全面推行以通用拼音为基础的统一译音政策,但并未强制要求使用。2008年9月,中国台湾地区确定中文译音政策将由“通用拼音”改为采用“汉语拼音”,涉及中文英译的部分,都将要求采用汉语拼音。通用拼音有个略去 f 而使用 v(注音符号:万)的音标版,可能原先用于客家话,但实际上拼读国语时无用。

5、威氏拼音

WADEGILES_PINYIN
威妥玛式拼音法(Wade-Giles romanization)又称威妥玛-翟理斯式拼音,简称威氏拼音法 。
它是1867年开始的,由英国人威妥玛(Thomas Francis Wade 1818年—1895年,今天的习惯应该翻译成托玛斯·韦德)等人合编的注音规则,叫“威氏拼音”。
威妥玛曾于1871年任英国驻华公使,1883年回国。1888年起在剑桥大学任教授,讲授汉语,直至1895年逝世。他以罗马字母为汉字注音,创立威氏拼音法。后来H.A.Giles稍加修订,合称WG威氏拼音法(Wade-Giles System)。它的最大优点是利用送气符号(‘)来表示送气的声母。

6、耶鲁拼音

1943年初,美国一批新学员包括即将来华参加抗日战争的军人集中到美国耶鲁大学,进行短期训练,学习汉语。为了适应需要,由美国耶鲁大学远东语言研究所的肯尼迪负责拟订了一个拼写汉语的拉丁字母方案。这个方案主要用来编写汉语的口语教材,供学员做会话练习。
耶鲁方案的主要特点是﹕(1)以北京语音为标准音﹔(2)用b﹑d﹑g表示不送气清塞音﹐p﹑t﹑k表示送气清塞音﹐不再使用送气符号﹔(3)用y﹑w﹑yw表示介音﹐如tyan(天)﹑gwo(国)﹑jywe(觉)﹔(4)用r﹑z分别表示两个舌尖元音(即“知”﹑“资”后面的元音)﹔(5)用符号表示声调﹕第一声“–”﹐第二声“ˊ”﹐第三声“ˇ”﹐第四声“ˋ”﹔(6)实行按词分写。

二、拼音格式

1、大小写

拼音者,以少表多也。少的肯定是字母,多的肯定是中日韩三国文字。既然是字母,就要遵循人家用字母的规矩:区分大写小写。
如:大写 拼成 DAXIE还是daxie

2、音调类型

汉语是有音调的,如何表示音调?常见的有三种方法:忽略音调、使用后缀数字、使用带音调的字母
WITH_TONE_NUMBER da3
WITHOUT_TONE da
WITH_TONE_MARK dǎ

3、鱼

汉语拼音里面最奇葩的莫过于ü,这个字母是唯一的一个26个英语字母中没有的字符,它明明应该用v的,那样将会少掉无数争端。
还记得小时候神奇的歌谣:j、q、x三兄弟,和ü相遇把点吃。
如果用v表示ü,完全没有这么多冗余的规则。所以设计拼音的人有点脑残。
在pinyin4j中,ü被作为一种格式来专门讨论。表示方式有三种:u+冒号、v、ü。
WITH_U_AND_COLON u:
WITH_V v
WITH_U_UNICODE ü

在以上三种格式中,并非有2×3×3=18种拼音方式,因为这些格式之间会产生冲突。主要原因是鱼的两种表示法u+冒号、v跟音调类型中的WITH_TONE_MARK不兼容。

三、关于pinyin4j

pinyin4j已经很古老了,代码是放在sourceforge上的,maven仓库中都没有。另外,pinyin4j引用的xml解析库sparta-xml虽然据说很快,但是很小众。
有人把pinyin4j迁移到了github并放到了maven仓库中:https://github.com/belerweb/pinyin4j/

Pinyin4j导读的更多相关文章

  1. 通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母

    通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母 例如 我的中国心    ==> wdzgx 我的中国心ya ==> wdzgxya woai我的中国 ==> w ...

  2. java-汉字转换拼音-pinyin4j.jar

    使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...

  3. 汉字转拼音(pinyin4j)

    1.引入依赖 <dependency> <groupId>pinyin4j.sourceforge.net</groupId> <artifactId> ...

  4. Effective C++ 之 0 导读(Introduction)

    Effective C++ 导读 (Introduction) 术语(terminology) 声明式 (declaration) 是告诉编译器某个东西的名称和类型(type),但略去细节.以下都是声 ...

  5. 【转】java开源类库pinyin4j的使用

    最近CMS系统为了增加查询的匹配率,需要增加拼音检索字段,在网上找到了pinyin4j的java开源类库,提供中文转汉语拼音(并且支持多音字), 呵呵,看了看他的demo,决定就用它了,因为我在实际使 ...

  6. cookie导读,理解什么是cookie

    一.cookie导读,理解什么是cookie    1.什么是cookie:cookie是一种能够让网站服务器把少量数据(4kb左右)存储到客户端的硬盘或内存.并且读可以取出来的一种技术.    2. ...

  7. 利用PinYin4j 实现List中的对象按数字,字母, 汉字排序

    要排序的对象: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPi ...

  8. MINIX3 导读分析

    一个操作系统的分析是属于一个非常庞大的工程,操作系统就像是一个人造的 人,每一个模块想完全发挥功效,很有可能需要很多模块的支持才能够实现.所 以在分析 MINIX3 时,我认为同时看多个模块对于理解 ...

  9. pinyin4j

    最近在倒腾与搜索相关的拼音检查技术,顺便看了一下中文转拼音开源插件pinyin4j的源码,参考资料:http://blog.csdn.net/hfhwfw/archive/2010/11/23/603 ...

随机推荐

  1. 【Git】Git-add之后-忽略部分文件的方法

    Git-add之后-忽略部分文件的方法 SparkKafkaDemo - Streaming Statistics git add 部分_百度搜索 (1 封私信)git 中如何撤销部分修改? - 知乎 ...

  2. Oracle中对数字加汉字的排序(完好)

    之前写过一篇 Oracle中对数字加汉字的排序以及REGEXP_SUBSTR介绍 后来在开发的过程中又遇到相似问题.数据不一样了,按之前的使用方法是不适用的. 之前的是数字在前汉字在后,最基本的差别是 ...

  3. A Complete ActiveX Web Control Tutorial

    A Complete ActiveX Web Control Tutorial From: https://www.codeproject.com/Articles/14533/A-Complete- ...

  4. BCG在程序中的使用

    首先你电脑上是安装有BCG的,详细安装方法就是先双击安装程序,之后编译当中的两个project.之后将其生成的.dll\.lib文件放入C++的include中这样就能够使用BCG的控件了. 1. 在 ...

  5. 给ajax表单提交数据前面加上实体名称

    有时候我们后台做了一个引用类型例如: 下面的实体以C#为例 public class Order{ public string orderId{get;set;} public OrderItem o ...

  6. ASP输出JSON数据及客户端jQuery处理方法

    首先ASP处理JSON需要json官方提供的JSON For ASP 封装类文件,下载地址:http://code.google.com/p/aspjson/downloads/list 下载最新的J ...

  7. WIFI:802.11协议帧格式

    802协议桢格式 802.11和Wi-Fi技术并不是同一个东西.Wi-Fi标准是802.11标准的一个子集,并且是Wi-Fi联盟负责管理 802协议桢格式: 协议 发布年份/日期 Op.标准频宽 实际 ...

  8. iOS编程(双语版) - 视图 - 基本概念

    1. 什么是视图? 视图显示为手机上的一块矩形区域,管理该区域的所有屏幕显示,它是UIView或者UIView的子类. 视图既可以从xib生成,也可以用代码生成. 2. 窗口 窗口是UIWindow或 ...

  9. 生日日期联动选择birthday.js

    实例下载

  10. WinForm 之 程序启动不显示主窗体

    在 WinForm 程序启动时,不显示主窗体的实现方法主要有以下5种,第五种最简单,而且效果也不错,第四种方法也值得推荐. 实例代码如下: //隐藏窗体的方法1/5:不指定任何窗体为主窗体 //注意: ...