php汉字转拼音百家姓版,Pinyin4Net: .net(core)使用的汉字转拼音库(含姓名拼音独立接口)。提供了简单的调用接口和通过拼音查询汉字的接口。...
Pinyin4NET
.net 环境下使用的拼音-汉字互转库
所有的目标版本都在这一个分支上,现支持以下目标版本:
net4.0
net4.5
net4.6
net4.7
net5.0
net6.0
netcore2.0
netcore3.0
netcore3.1
netstandard1.6
netstandard2.0
netstandard2.1
源码与发行版
GitHub zip
git clone https://github.com/hyjiacan/Pinyin4Net.git
git clone https://gitee.com/hyjiacan/Pinyin4Net.git
nuget 安装
包 ID 在 4.0(含) 以前叫做 hyjiacan.py4n
Package Manager
Install-Package hyjiacan.pinyin4net
.NET CLI
dotnet add package hyjiacan.pinyin4net
Packet CLI
paket add hyjiacan.pinyin4net
注:nuget 上还有一个 Pinyin4Net 的包,
那是有网友基于此项目的早期版本发布的,并非本人发布。
编译
执行项目目录下的build.bat/build.sh可以直接开始生成所有支持的目标的Release版本,
若需要生成某个版本,请参考以下命令。
cdhyjiacan.py4n
编译DEBUG版本
dotnet build --configuration Debug
# 或
dotnet build
注:--configuration Debug 为默认配置
编译为RELEASE版本
dotnet build --configuration Release
若要编译指定的版本,使用以下参数:
dotnet build -f net40
当前配置可以使用的版本如下:
NET40
NET45
NETCOREAPP2.0
NETCOREAPP3.0
NETSTANDARD1.6
NETSTANDARD2.0
NETSTANDARD2.1
若要编译成其它的目标版本,需要自行修改hyjiacan.py4n.csptoj里面的TargetFrameworks节点,
版本名称见How to target the .NET Framework
单元测试
单元测试需要安装对应的.net 版本
cdUnitTestProject
运行所有版本的测试
dotnet test
运行指定版本的测试
dotnet test -f net45
注意:.net4.0 或以下版本不支持MsTest单元测试
WebDemo
Demo 网站基于**.NETCORE2.0**
cdWebDemo
dotnet build
dotnet run
接口
提供的所有接口,均为静态接口。
Pinyin4Net 汉字拼音查询
汉字查询接口都放在类 Pinyin4Net 内
汉字查拼音
///
/// 更新拼音数据库
///
/// 多音字作在数组中
/// 是否替换已经存在的项,默认为 false
public static void UpdateMap(Dictionary data, bool replace = false);
///
/// 获取汉字的拼音数组
///
/// 要查询拼音的汉字字符
/// 设置输出拼音的格式
/// 汉字的拼音数组,若未找到汉字拼音,则返回空数组
/// 当要获取拼音的字符不是汉字时抛出此异常
public static string[] GetPinyin(char hanzi, PinyinFormat format = PinyinFormat.None);
///
/// 获取格式化后的唯一拼音(单音字)或者第一个拼音(多音字)
///
/// 要查询拼音的汉字字符
/// 拼音输出格式化参数
///
///
/// 格式化后的唯一拼音(单音字)或者第一个拼音(多音字)
/// 当要获取拼音的字符不是汉字时抛出此异常
public static string GetFirstPinyin(char hanzi, PinyinFormat format = PinyinFormat.None);
{
var pinyin = GetPinyin(hanzi)[0];
if (format == PinyinFormat.None)
{
return pinyin;
}
return PinyinUtil.Format(pinyin, format);
}
///
/// 获取一个字符串内所有汉字的拼音数组
///
/// 要获取拼音的汉字字符串
/// 拼音输出格式化参数
/// 返回拼音列表,每个汉字的拼音会作为一个数组存放(无论是单音字还是多音字)
///
public static List GetPinyinArray(string text, PinyinFormat format);
///
/// 获取一个字符串内所有汉字的拼音(多音字取第一个读音,带格式)
///
/// 要获取拼音的汉字字符串
/// 拼音输出格式化参数
/// 是否将前面的格式中的大小写扩展到其它非拼音字符,默认为false。firstLetterOnly为false时有效
/// 是否只取拼音首字母,为true时,format无效
/// firstLetterOnly为true时有效,多音字的多个读音首字母是否全取,如果多音字拼音首字母相同,只保留一个
/// firstLetterOnly为true时,只取拼音首字母格式为[L],后面追加空格;multiFirstLetter为true时,多音字的多个拼音首字母格式为[L, H],后面追加空格
public static string GetPinyin(string text, PinyinFormat format, bool caseSpread, bool firstLetterOnly, bool multiFirstLetter);
///
/// 获取一个字符串内所有汉字的拼音(多音字取第一个读音,带格式)
///
/// 要获取拼音的汉字字符串
/// 拼音输出格式化参数
/// 是否将前面的格式中的大小写扩展到其它非拼音字符,默认为false。
///
/// 拼音处理器,在获取到拼音后通过这个来处理,
/// 如果传null,则默认取第一个拼音(多音字),
/// 参数:
/// 1 string[] 拼音数组
/// 2 char 当前的汉字
/// 3 string 要转成拼音的字符串
/// return 拼音字符串,这个返回值将作为这个汉字的拼音放到结果中
///
public static string GetPinyin(string text, PinyinFormat format, bool caseSpread, Func pinyinHandler);
///
/// 获取一个字符串内所有汉字的拼音(多音字取第一个读音,带格式),format中指定的大小写模式不会扩展到非拼音字符
///
/// 要获取拼音的汉字字符串
/// 拼音输出格式化参数
/// 格式化后的拼音字符串
public static string GetPinyin(string text, PinyinFormat format);
PinyinItem:
这是一个继承了 List 的数据结构,包含以下字段:
IsHanzi 标识是否是汉字字符
RawChar 原始的字符
拼音查汉字
///
/// 根据单个拼音查询匹配的汉字
///
/// 要查询汉字的单个拼音
/// 是否全部匹配,为true时,匹配整个拼音,否则匹配开头字符
///
public static string[] GetHanzi(string pinyin, bool matchAll);
Name4Net 姓氏拼音查询
姓氏查询接口都放在类 Name4Net 内
///
/// 更新姓氏数据库
///
/// 复姓的拼音使用一个空格分隔
/// 是否替换已经存在的项,默认为 false
public static void UpdateMap(Dictionary data, bool replace = false);
///
/// 获取姓的拼音,如果是复姓则由空格分隔
///
/// 要查询拼音的姓
/// 输出拼音格式化参数
/// 返回姓的拼音,若未找到姓,则返回null
/// 当要获取拼音的字符不是汉字时抛出此异常
public static string GetPinyin(string firstName, PinyinFormat format = PinyinFormat.None);
///
/// 获取姓的首字母,如果是复姓则由空格分隔首字母
///
/// 要查询拼音的姓
/// 返回姓的拼音首字母,若未找到姓,则返回null
/// 当要获取拼音的字符不是汉字时抛出此异常
public static string GetFirstLetter(string firstName);
///
/// 根据拼音查询匹配的姓
///
///
/// 是否全部匹配,为true时,匹配整个拼音,否则匹配开头字符,此参数用于告知传入的拼音是完整拼音还是仅仅是声母
/// 匹配的姓数组
public static string[] GetHanzi(string pinyin, bool matchAll);
格式化参数
用于对拼音输入进行格式化控制
[Flags]
public enum PinyinFormat
{
///
/// 不指定格式
///
None,
///
/// 首字母大写,此选项对 a e o i u 几个独音无效
///
CAPITALIZE_FIRST_LETTER = 1 << 1,
///
/// 全小写
///
LOWERCASE = 1 << 2,
///
/// 全大写
///
UPPERCASE = 1 << 3,
///
/// 将 ü 输出为 u:
///
WITH_U_AND_COLON = 1 << 4,
///
/// 将 ü 输出为 v
///
WITH_V = 1 << 5,
///
/// 将 ü 输出为 ü
///
WITH_U_UNICODE = 1 << 6,
///
/// 带声调标志
///
WITH_TONE_MARK = 1 << 7,
///
/// 不带声调
///
WITHOUT_TONE = 1 << 8,
///
/// 带声调数字值
///
WITH_TONE_NUMBER = 1 << 9,
}
通过组合位标识值即可格式化拼音输入。(请看 示例)
示例
// 设置拼音输出格式
PinyinFormat format = PinyinFormat.WITHOUT_TONE | PinyinFormat.LOWERCASE | PinyinFormat.WITH_U_UNICODE;
char hanzi = '李';
// 判断是否是汉字
if(PinyinUtil.IsHanzi(hanzi)){
return;
}
// 取出指定汉字的所有拼音
string[] py = Pinyin4Net.GetPinyin(hanzi);
// 取出指定汉字的所有拼音(经过格式化的)
string[] py = Pinyin4Net.GetPinyin(hanzi, format);
// 取指定汉字的唯一或者第一个拼音
Pinyin4Net.GetFirstPinyin(hanzi);
// 取指定汉字的唯一或者第一个拼音(经过格式化的)
Pinyin4Net.GetPinyin(hanzi, format);
// 根据拼音查汉字
string[] hanzi = Pinyin4Net.GetHanzi('li', true);
姓氏拼音查询
string firstName = "单于";
// 取出姓的拼音
string py = Name4Net.GetPinyin(firstName);
// 取出姓的拼音首字母
string py = Name4Net.GetFirstLetter(firstName);
// 取出姓的拼音(格式化后)
string py = Name4Net.GetPinyin(firstName, format);
// 取出匹配拼音的姓
string[] firstNames = Name4Net.GetHanzi("li", false);
数据源
拼音库
完整引用了 pinyin4j 的拼音数据库,在此表示感谢
姓氏库
库可能并不完整,或者有些姓氏拼音有误,欢迎通过 Issues 更正或者直接通过 PR 提交。
部分姓氏存在多种不同的读音,在库中仅使用了常用的读音。
捐赠列表
按捐赠时间先后从上至下排列
感谢以上朋友的支持,你们使开源更有信心。
php汉字转拼音百家姓版,Pinyin4Net: .net(core)使用的汉字转拼音库(含姓名拼音独立接口)。提供了简单的调用接口和通过拼音查询汉字的接口。...相关推荐
- 11,外观模式(Facade Pattern)是为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。...
Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种.Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面.这个一致的简单的界面被称作facade. ...
- php汉字转拼音百家姓版,百家姓全文查询,百家姓全文带拼音
百家姓<复姓> mò qí sī mǎ shàng guān ōu yáng 万 俟 司 马 , 上 官 欧 阳 . xià hóu zhū gě wén rén dōng fān ...
- php汉字转拼音百家姓版,Excel 将中文名改成拼音,并将姓氏放后面
今天收到一个需求,需要将中文名改成拼音并需要将姓氏放后面 名字首字母和姓氏首字母需大写 中间加空格,类似如下 其中用到了汉子转拼音的Visual Basic 模块 英文快速分列技巧 实现首字母大写的P ...
- php汉字转拼音百家姓版,砚田马中华书《百家姓》(文字拼音版)
zhào qián sūn lǐ 赵 钱 孙 李zhōu wú zhèng wáng 周 吴 郑 王féng chén chǔ wèi 冯 陈 褚 卫 jiǎng shěn h ...
- 汉字转化为拼音(php版)
分享:汉字转化为拼音(php版) 很多服务器对于中文文件名支持不是很好,需要一种解决方法. 解决方法一般是产生一个ID,将这个ID做文件名:网页上如果url带汉字也经常出错:现在的解决方法一般用url ...
- php随机给文字拼音,汉字转化为拼音(php版)
汉字转化为拼音(php版) 更新时间:2006年10月09日 00:00:00 作者: 汉字转化为拼音(php版) 很多服务器对于中文文件名支持不是很好,有没有好的办法来解决呢???现在的解决方法 ...
- php mysql 拼音首字母,Mysql应用MySQL查询汉字的拼音首字母实例教程
<Mysql应用MySQL查询汉字的拼音首字母实例教程>要点: 本文介绍了Mysql应用MySQL查询汉字的拼音首字母实例教程,希望对您有用.如果有疑问,可以联系我们. 导读:最好的方法还 ...
- mysql hzpy_MySQL 实现查询汉字的拼音首字母 的字拼音
的字拼音 MySQL 实现查询汉字的拼音首字母 时间:2010-04-06 12:23:22 类别:技术 访问:1,314 views RSS 2.0 评论 其实最好的方法还是用 PHP 来取拼音首字 ...
- mysql查询汉字拼音首字母的方法_MySQL查询汉字拼音首字母的方法
下面为您介绍了MySQL查询汉字拼音首字母的方法,该方法极具实用价值,如果您之前遇到过类似方面的问题,不妨一看. MySQL查询汉字拼音首字母方法如下: 1.建立拼音首字母资料表 Sql代码: DRO ...
- 像中文的罗马音字体复制_罗马音大全可复制汉字免费版下载-罗马音大全可复制吊汉字app在线生成版v1.1.2 手机版-007游戏网...
罗马音大全可复制吊汉字app在线生成版,是一款拥有各种好看文字的在线生成软件,软件功能强大,用户在线操作后即可生成各种好看的文字,用户可直接复制当作游戏名使用,能够有效的展现出自己独有的风格. 罗马音 ...
最新文章
- 不要把OKR用成 KPI,OKR和KPI有什么区别?
- linux挂载一个文件夹,linux挂载一个文件夹到另一个文件夹
- eureka服务下线事件监听(自定义处理逻辑)
- python网络编程linux清华_Python网络编程篇之socket
- Entity Framework 4 in Action读书笔记——第六章:理解实体的生命周期(一)
- krpano音量控制(我们已经转移到krpano中国网站 krpano360.com)
- linux串口输出重定向到文件,DOS 下将屏幕打印输出重定向到指定文件中(或重定向到并口/串口)...
- linux硬盘格式哪个好,linux使用哪种硬盘分区格式会比较好
- AD快捷键备份20210202
- 主题:北京亿阳信通Oracle笔试题
- Java多线程由易到难
- Java-面向对象构造函数 -(private private)关键字
- 修改阿里云CentOS的远程登录默认22端口
- vue实现实时直播 摄像头实现实时直播 dplayer+flv flv.js
- 基于springBoot的港口集装箱码头管理系统
- 应用架构COLA 2.0
- strcmp()函数的用法
- 英语学习笔记——发音篇
- google源码下载方法
- 【伊利丹】Hadoop-2.5.0-CDH5.2.0 版本升级和数据均衡 实验记录
热门文章
- Idea内网配置仓库地址
- 记一次https的免费ssl证书安装及配置过程--window系统
- Android面试:说一下 LiveData 的 postValue ?与SetValue有什么区别?连续调用会有什么问题?为什么?
- 读书会 | 第一季读书会《蛤蟆先生去看心理医生》完美收官啦
- AVI文件在opencore框架下的解析
- miRNA-转录组-蛋白组联合分析
- 国内外优秀的计算机视觉团队汇总|最新版
- 知网如何快速引用参考文献
- pr如何跳到关键帧_(小白学PR不迷路)只要你用过PR,这些问题你一定遇到过
- 职场“奇葩说”:我的老板有多坑?