4赞
385
当前位置:  开发笔记 > 编程语言 > 正文

汉字转化成拼音(首字母)

SQLServer:createfunctionfun_getPY(strnvarchar(4000))returnsnvarchar(4000)asbegin

SQL Server:

create function fun_getPY(@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000)
set @PY=''
while len(@str)>0
begin
set @word=left(@str,1)
--如果非汉字字符,返回原字符
set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
then (select top 1 PY from (
select 'A' as PY,N'' as word
union all select 'B',N'簿'
union all select 'C',N''
union all select 'D',N''
union all select 'E',N''
union all select 'F',N''
union all select 'G',N''
union all select 'H',N''
union all select 'J',N''
union all select 'K',N''
union all select 'L',N''
union all select 'M',N''
union all select 'N',N''
union all select 'O',N''
union all select 'P',N''
union all select 'Q',N''
union all select 'R',N''
union all select 'S',N''
union all select 'T',N''
union all select 'W',N''
union all select 'X',N''
union all select 'Y',N''
union all select 'Z',N''
) T
where word>=@word collate Chinese_PRC_CS_AS_KS_WS
order by PY ASC) else @word end)
set @str=right(@str,len(@str)-1)
end
return @PY
end

 C#:

///

/// 汉字转拼音类/// public class Hz2Py{private static int[] pyValue &#61; new int[]{-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036,-20032,-20026,-20002,-19990,-19986,-19982,-19976,-19805,-19784,-19775,-19774,-19763,-19756,-19751,-19746,-19741,-19739,-19728,-19725,-19715,-19540,-19531,-19525,-19515,-19500,-19484,-19479,-19467,-19289,-19288,-19281,-19275,-19270,-19263,-19261,-19249,-19243,-19242,-19238,-19235,-19227,-19224,-19218,-19212,-19038,-19023,-19018,-19006,-19003,-18996,-18977,-18961,-18952,-18783,-18774,-18773,-18763,-18756,-18741,-18735,-18731,-18722,-18710,-18697,-18696,-18526,-18518,-18501,-18490,-18478,-18463,-18448,-18447,-18446,-18239,-18237,-18231,-18220,-18211,-18201,-18184,-18183, -18181,-18012,-17997,-17988,-17970,-17964,-17961,-17950,-17947,-17931,-17928,-17922,-17759,-17752,-17733,-17730,-17721,-17703,-17701,-17697,-17692,-17683,-17676,-17496,-17487,-17482,-17468,-17454,-17433,-17427,-17417,-17202,-17185,-16983,-16970,-16942,-16915,-16733,-16708,-16706,-16689,-16664,-16657,-16647,-16474,-16470,-16465,-16459,-16452,-16448,-16433,-16429,-16427,-16423,-16419,-16412,-16407,-16403,-16401,-16393,-16220,-16216,-16212,-16205,-16202,-16187,-16180,-16171,-16169,-16158,-16155,-15959,-15958,-15944,-15933,-15920,-15915,-15903,-15889,-15878,-15707,-15701,-15681,-15667,-15661,-15659,-15652,-15640,-15631,-15625,-15454,-15448,-15436,-15435,-15419,-15416,-15408,-15394,-15385,-15377,-15375,-15369,-15363,-15362,-15183,-15180,-15165,-15158,-15153,-15150,-15149,-15144,-15143,-15141,-15140,-15139,-15128,-15121,-15119,-15117,-15110,-15109,-14941,-14937,-14933,-14930,-14929,-14928,-14926,-14922,-14921,-14914,-14908,-14902,-14894,-14889,-14882,-14873,-14871,-14857,-14678,-14674,-14670,-14668,-14663,-14654,-14645,-14630,-14594,-14429,-14407,-14399,-14384,-14379,-14368,-14355,-14353,-14345,-14170,-14159,-14151,-14149,-14145,-14140,-14137,-14135,-14125,-14123,-14122,-14112,-14109,-14099,-14097,-14094,-14092,-14090,-14087,-14083,-13917,-13914,-13910,-13907,-13906,-13905,-13896,-13894,-13878,-13870,-13859,-13847,-13831,-13658,-13611,-13601,-13406,-13404,-13400,-13398,-13395,-13391,-13387,-13383,-13367,-13359,-13356,-13343,-13340,-13329,-13326,-13318,-13147,-13138,-13120,-13107,-13096,-13095,-13091,-13076,-13068,-13063,-13060,-12888,-12875,-12871,-12860,-12858,-12852,-12849,-12838,-12831,-12829,-12812,-12802,-12607,-12597,-12594,-12585,-12556,-12359,-12346,-12320,-12300,-12120,-12099,-12089,-12074,-12067,-12058,-12039,-11867,-11861,-11847,-11831,-11798,-11781,-11604,-11589,-11536,-11358,-11340,-11339,-11324,-11303,-11097,-11077,-11067,-11055,-11052,-11045,-11041,-11038,-11024,-11020,-11019,-11018,-11014,-10838,-10832,-10815,-10800,-10790,-10780,-10764,-10587,-10544,-10533,-10519,-10331,-10329,-10328,-10322,-10315,-10309,-10307,-10296,-10281,-10274,-10270,-10262,-10260,-10256,-10254};private static string[] pyName &#61; new string[]{"A","Ai","An","Ang","Ao","Ba","Bai","Ban","Bang","Bao","Bei","Ben","Beng","Bi","Bian","Biao","Bie","Bin","Bing","Bo","Bu","Ba","Cai","Can","Cang","Cao","Ce","Ceng","Cha","Chai","Chan","Chang","Chao","Che","Chen","Cheng","Chi","Chong","Chou","Chu","Chuai","Chuan","Chuang","Chui","Chun","Chuo","Ci","Cong","Cou","Cu","Cuan","Cui","Cun","Cuo","Da","Dai","Dan","Dang","Dao","De","Deng","Di","Dian","Diao","Die","Ding","Diu","Dong","Dou","Du","Duan","Dui","Dun","Duo","E","En","Er","Fa","Fan","Fang","Fei","Fen","Feng","Fo","Fou","Fu","Ga","Gai","Gan","Gang","Gao","Ge","Gei","Gen","Geng","Gong","Gou","Gu","Gua","Guai","Guan","Guang","Gui","Gun","Guo","Ha","Hai","Han","Hang","Hao","He","Hei","Hen","Heng","Hong","Hou","Hu","Hua","Huai","Huan","Huang","Hui","Hun","Huo","Ji","Jia","Jian","Jiang","Jiao","Jie","Jin","Jing","Jiong","Jiu","Ju","Juan","Jue","Jun","Ka","Kai","Kan","Kang","Kao","Ke","Ken","Keng","Kong","Kou","Ku","Kua","Kuai","Kuan","Kuang","Kui","Kun","Kuo","La","Lai","Lan","Lang","Lao","Le","Lei","Leng","Li","Lia","Lian","Liang","Liao","Lie","Lin","Ling","Liu","Long","Lou","Lu","Lv","Luan","Lue","Lun","Luo","Ma","Mai","Man","Mang","Mao","Me","Mei","Men","Meng","Mi","Mian","Miao","Mie","Min","Ming","Miu","Mo","Mou","Mu","Na","Nai","Nan","Nang","Nao","Ne","Nei","Nen","Neng","Ni","Nian","Niang","Niao","Nie","Nin","Ning","Niu","Nong","Nu","Nv","Nuan","Nue","Nuo","O","Ou","Pa","Pai","Pan","Pang","Pao","Pei","Pen","Peng","Pi","Pian","Piao","Pie","Pin","Ping","Po","Pu","Qi","Qia","Qian","Qiang","Qiao","Qie","Qin","Qing","Qiong","Qiu","Qu","Quan","Que","Qun","Ran","Rang","Rao","Re","Ren","Reng","Ri","Rong","Rou","Ru","Ruan","Rui","Run","Ruo","Sa","Sai","San","Sang","Sao","Se","Sen","Seng","Sha","Shai","Shan","Shang","Shao","She","Shen","Sheng","Shi","Shou","Shu","Shua","Shuai","Shuan","Shuang","Shui","Shun","Shuo","Si","Song","Sou","Su","Suan","Sui","Sun","Suo","Ta","Tai","Tan","Tang","Tao","Te","Teng","Ti","Tian","Tiao","Tie","Ting","Tong","Tou","Tu","Tuan","Tui","Tun","Tuo","Wa","Wai","Wan","Wang","Wei","Wen","Weng","Wo","Wu","Xi","Xia","Xian","Xiang","Xiao","Xie","Xin","Xing","Xiong","Xiu","Xu","Xuan","Xue","Xun","Ya","Yan","Yang","Yao","Ye","Yi","Yin","Ying","Yo","Yong","You","Yu","Yuan","Yue","Yun","Za", "Zai","Zan","Zang","Zao","Ze","Zei","Zen","Zeng","Zha","Zhai","Zhan","Zhang","Zhao","Zhe","Zhen","Zheng","Zhi","Zhong","Zhou","Zhu","Zhua","Zhuai","Zhuan","Zhuang","Zhui","Zhun","Zhuo","Zi","Zong","Zou","Zu","Zuan","Zui","Zun","Zuo"};/// /// 把汉字转换成拼音(全拼)/// /// 汉字字符串/// 转换后的拼音(全拼)字符串public static string Convert(string hzString){// 匹配中文字符Regex regex &#61; new Regex("^[\u4e00-\u9fa5]$");byte[] array &#61; new byte[2];string pyString &#61; "";int chrAsc &#61; 0;int i1 &#61; 0;int i2 &#61; 0;char[] noWChar &#61; hzString.ToCharArray();for (int j &#61; 0; j ){// 中文字符if (regex.IsMatch(noWChar[j].ToString())){array &#61; System.Text.Encoding.Default.GetBytes(noWChar[j].ToString());i1 &#61; (short)(array[0]);i2 &#61; (short)(array[1]);chrAsc &#61; i1 * 256 &#43; i2 - 65536;if (chrAsc > 0 && chrAsc <160){pyString &#43;&#61; noWChar[j];}else{// 修正部分文字if (chrAsc &#61;&#61; -9254) // 修正“圳”字pyString &#43;&#61; "Zhen";else{for (int i &#61; (pyValue.Length - 1); i >&#61; 0; i--){if (pyValue[i] <&#61; chrAsc){pyString &#43;&#61; pyName[i];break;}}}}}// 非中文字符else{pyString &#43;&#61; noWChar[j].ToString();}}return pyString;}/// /// 得到一个汉字的拼音第一个字母&#xff0c;如果是一个英文字母则直接返回大写字母 /// /// 单个汉字 /// 单个大写字母 private static string GetCharSpellCode(string CnChar){long iCnChar;byte[] ZW &#61; System.Text.Encoding.Default.GetBytes(CnChar);//如果是字母&#xff0c;则直接返回 if (ZW.Length &#61;&#61; 1){return CnChar.ToUpper();}else{// get the array of byte from the single char int i1 &#61; (short)(ZW[0]);int i2 &#61; (short)(ZW[1]);iCnChar &#61; i1 * 256 &#43; i2;}#region table of the constant list//expresstion //table of the constant list // &#39;A&#39;; //45217..45252 // &#39;B&#39;; //45253..45760 // &#39;C&#39;; //45761..46317 // &#39;D&#39;; //46318..46825 // &#39;E&#39;; //46826..47009 // &#39;F&#39;; //47010..47296 // &#39;G&#39;; //47297..47613 // &#39;H&#39;; //47614..48118 // &#39;J&#39;; //48119..49061 // &#39;K&#39;; //49062..49323 // &#39;L&#39;; //49324..49895 // &#39;M&#39;; //49896..50370 // &#39;N&#39;; //50371..50613 // &#39;O&#39;; //50614..50621 // &#39;P&#39;; //50622..50905 // &#39;Q&#39;; //50906..51386 // &#39;R&#39;; //51387..51445 // &#39;S&#39;; //51446..52217 // &#39;T&#39;; //52218..52697 //没有U,V // &#39;W&#39;; //52698..52979 // &#39;X&#39;; //52980..53640 // &#39;Y&#39;; //53689..54480 // &#39;Z&#39;; //54481..55289 #endregion// iCnChar match the constant if ((iCnChar >&#61; 45217) && (iCnChar <&#61; 45252)){return "A";}else if ((iCnChar >&#61; 45253) && (iCnChar <&#61; 45760)){return "B";}else if ((iCnChar >&#61; 45761) && (iCnChar <&#61; 46317)){return "C";}else if ((iCnChar >&#61; 46318) && (iCnChar <&#61; 46825)){return "D";}else if ((iCnChar >&#61; 46826) && (iCnChar <&#61; 47009)){return "E";}else if ((iCnChar >&#61; 47010) && (iCnChar <&#61; 47296)){return "F";}else if ((iCnChar >&#61; 47297) && (iCnChar <&#61; 47613)){return "G";}else if ((iCnChar >&#61; 47614) && (iCnChar <&#61; 48118)){return "H";}else if ((iCnChar >&#61; 48119) && (iCnChar <&#61; 49061)){return "J";}else if ((iCnChar >&#61; 49062) && (iCnChar <&#61; 49323)){return "K";}else if ((iCnChar >&#61; 49324) && (iCnChar <&#61; 49895)){return "L";}else if ((iCnChar >&#61; 49896) && (iCnChar <&#61; 50370)){return "M";}else if ((iCnChar >&#61; 50371) && (iCnChar <&#61; 50613)){return "N";}else if ((iCnChar >&#61; 50614) && (iCnChar <&#61; 50621)){return "O";}else if ((iCnChar >&#61; 50622) && (iCnChar <&#61; 50905)){return "P";}else if ((iCnChar >&#61; 50906) && (iCnChar <&#61; .51386)){return "Q";}else if ((iCnChar >&#61; 51387) && (iCnChar <&#61; 51445)){return "R";}else if ((iCnChar >&#61; 51446) && (iCnChar <&#61; 52217)){return "S";}else if ((iCnChar >&#61; 52218) && (iCnChar <&#61; 52697)){return "T";}else if ((iCnChar >&#61; 52698) && (iCnChar <&#61; 52979)){return "W";}else if ((iCnChar >&#61; 52980) && (iCnChar <&#61; 53640)){return "X";}else if ((iCnChar >&#61; 53689) && (iCnChar <&#61; 54480)){return "Y";}else if ((iCnChar >&#61; 54481) && (iCnChar <&#61; 55289)){return "Z";}else return ("?");}
}

PHP

///

/// 汉字转拼音类///
class Hz2Py
{
var $pyValue &#61; array(-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036,-20032,-20026,-20002,-19990,-19986,-19982,-19976,-19805,-19784,-19775,-19774,-19763,-19756,-19751,-19746,-19741,-19739,-19728,-19725,-19715,-19540,-19531,-19525,-19515,-19500,-19484,-19479,-19467,-19289,-19288,-19281,-19275,-19270,-19263,-19261,-19249,-19243,-19242,-19238,-19235,-19227,-19224,-19218,-19212,-19038,-19023,-19018,-19006,-19003,-18996,-18977,-18961,-18952,-18783,-18774,-18773,-18763,-18756,-18741,-18735,-18731,-18722,-18710,-18697,-18696,-18526,-18518,-18501,-18490,-18478,-18463,-18448,-18447,-18446,-18239,-18237,-18231,-18220,-18211,-18201,-18184,-18183, -18181,-18012,-17997,-17988,-17970,-17964,-17961,-17950,-17947,-17931,-17928,-17922,-17759,-17752,-17733,-17730,-17721,-17703,-17701,-17697,-17692,-17683,-17676,-17496,-17487,-17482,-17468,-17454,-17433,-17427,-17417,-17202,-17185,-16983,-16970,-16942,-16915,-16733,-16708,-16706,-16689,-16664,-16657,-16647,-16474,-16470,-16465,-16459,-16452,-16448,-16433,-16429,-16427,-16423,-16419,-16412,-16407,-16403,-16401,-16393,-16220,-16216,-16212,-16205,-16202,-16187,-16180,-16171,-16169,-16158,-16155,-15959,-15958,-15944,-15933,-15920,-15915,-15903,-15889,-15878,-15707,-15701,-15681,-15667,-15661,-15659,-15652,-15640,-15631,-15625,-15454,-15448,-15436,-15435,-15419,-15416,-15408,-15394,-15385,-15377,-15375,-15369,-15363,-15362,-15183,-15180,-15165,-15158,-15153,-15150,-15149,-15144,-15143,-15141,-15140,-15139,-15128,-15121,-15119,-15117,-15110,-15109,-14941,-14937,-14933,-14930,-14929,-14928,-14926,-14922,-14921,-14914,-14908,-14902,-14894,-14889,-14882,-14873,-14871,-14857,-14678,-14674,-14670,-14668,-14663,-14654,-14645,-14630,-14594,-14429,-14407,-14399,-14384,-14379,-14368,-14355,-14353,-14345,-14170,-14159,-14151,-14149,-14145,-14140,-14137,-14135,-14125,-14123,-14122,-14112,-14109,-14099,-14097,-14094,-14092,-14090,-14087,-14083,-13917,-13914,-13910,-13907,-13906,-13905,-13896,-13894,-13878,-13870,-13859,-13847,-13831,-13658,-13611,-13601,-13406,-13404,-13400,-13398,-13395,-13391,-13387,-13383,-13367,-13359,-13356,-13343,-13340,-13329,-13326,-13318,-13147,-13138,-13120,-13107,-13096,-13095,-13091,-13076,-13068,-13063,-13060,-12888,-12875,-12871,-12860,-12858,-12852,-12849,-12838,-12831,-12829,-12812,-12802,-12607,-12597,-12594,-12585,-12556,-12359,-12346,-12320,-12300,-12120,-12099,-12089,-12074,-12067,-12058,-12039,-11867,-11861,-11847,-11831,-11798,-11781,-11604,-11589,-11536,-11358,-11340,-11339,-11324,-11303,-11097,-11077,-11067,-11055,-11052,-11045,-11041,-11038,-11024,-11020,-11019,-11018,-11014,-10838,-10832,-10815,-10800,-10790,-10780,-10764,-10587,-10544,-10533,-10519,-10331,-10329,-10328,-10322,-10315,-10309,-10307,-10296,-10281,-10274,-10270,-10262,-10260,-10256,-10254);var $pyName &#61; array("A","Ai","An","Ang","Ao","Ba","Bai","Ban","Bang","Bao","Bei","Ben","Beng","Bi","Bian","Biao","Bie","Bin","Bing","Bo","Bu","Ba","Cai","Can","Cang","Cao","Ce","Ceng","Cha","Chai","Chan","Chang","Chao","Che","Chen","Cheng","Chi","Chong","Chou","Chu","Chuai","Chuan","Chuang","Chui","Chun","Chuo","Ci","Cong","Cou","Cu","Cuan","Cui","Cun","Cuo","Da","Dai","Dan","Dang","Dao","De","Deng","Di","Dian","Diao","Die","Ding","Diu","Dong","Dou","Du","Duan","Dui","Dun","Duo","E","En","Er","Fa","Fan","Fang","Fei","Fen","Feng","Fo","Fou","Fu","Ga","Gai","Gan","Gang","Gao","Ge","Gei","Gen","Geng","Gong","Gou","Gu","Gua","Guai","Guan","Guang","Gui","Gun","Guo","Ha","Hai","Han","Hang","Hao","He","Hei","Hen","Heng","Hong","Hou","Hu","Hua","Huai","Huan","Huang","Hui","Hun","Huo","Ji","Jia","Jian","Jiang","Jiao","Jie","Jin","Jing","Jiong","Jiu","Ju","Juan","Jue","Jun","Ka","Kai","Kan","Kang","Kao","Ke","Ken","Keng","Kong","Kou","Ku","Kua","Kuai","Kuan","Kuang","Kui","Kun","Kuo","La","Lai","Lan","Lang","Lao","Le","Lei","Leng","Li","Lia","Lian","Liang","Liao","Lie","Lin","Ling","Liu","Long","Lou","Lu","Lv","Luan","Lue","Lun","Luo","Ma","Mai","Man","Mang","Mao","Me","Mei","Men","Meng","Mi","Mian","Miao","Mie","Min","Ming","Miu","Mo","Mou","Mu","Na","Nai","Nan","Nang","Nao","Ne","Nei","Nen","Neng","Ni","Nian","Niang","Niao","Nie","Nin","Ning","Niu","Nong","Nu","Nv","Nuan","Nue","Nuo","O","Ou","Pa","Pai","Pan","Pang","Pao","Pei","Pen","Peng","Pi","Pian","Piao","Pie","Pin","Ping","Po","Pu","Qi","Qia","Qian","Qiang","Qiao","Qie","Qin","Qing","Qiong","Qiu","Qu","Quan","Que","Qun","Ran","Rang","Rao","Re","Ren","Reng","Ri","Rong","Rou","Ru","Ruan","Rui","Run","Ruo","Sa","Sai","San","Sang","Sao","Se","Sen","Seng","Sha","Shai","Shan","Shang","Shao","She","Shen","Sheng","Shi","Shou","Shu","Shua","Shuai","Shuan","Shuang","Shui","Shun","Shuo","Si","Song","Sou","Su","Suan","Sui","Sun","Suo","Ta","Tai","Tan","Tang","Tao","Te","Teng","Ti","Tian","Tiao","Tie","Ting","Tong","Tou","Tu","Tuan","Tui","Tun","Tuo","Wa","Wai","Wan","Wang","Wei","Wen","Weng","Wo","Wu","Xi","Xia","Xian","Xiang","Xiao","Xie","Xin","Xing","Xiong","Xiu","Xu","Xuan","Xue","Xun","Ya","Yan","Yang","Yao","Ye","Yi","Yin","Ying","Yo","Yong","You","Yu","Yuan","Yue","Yun","Za", "Zai","Zan","Zang","Zao","Ze","Zei","Zen","Zeng","Zha","Zhai","Zhan","Zhang","Zhao","Zhe","Zhen","Zheng","Zhi","Zhong","Zhou","Zhu","Zhua","Zhuai","Zhuan","Zhuang","Zhui","Zhun","Zhuo","Zi","Zong","Zou","Zu","Zuan","Zui","Zun","Zuo");/// /// 把汉字转换成拼音(全拼)/// /// 汉字字符串/// 转换后的拼音(全拼)字符串function Hz_Py($hzString){// 匹配中文字符$array;$pyString &#61; "";$chrAsc &#61; 0;$i1 &#61; 0;$i2 &#61; 0;preg_match_all("/./u", $hzString, $hzArr);$noWChar &#61; $hzArr[0];for ($j &#61; 0; $j <count($noWChar); $j&#43;&#43;){// 中文字符if (preg_match(&#39;/[\x{4e00}-\x{9fa5}]/u&#39;,$noWChar[$j])){$s1&#61;iconv(&#39;UTF-8&#39;,&#39;gb2312&#39;,$noWChar[$j]);$s2&#61;iconv(&#39;gb2312&#39;,&#39;UTF-8&#39;,$s1);$s&#61;$s2&#61;&#61;$noWChar[$j]?$s1:$noWChar[$j];$chrAsc&#61;ord($s{0})*256&#43;ord($s{1})-65536;if ($chrAsc > 0 && $chrAsc <160){$pyString .&#61; $noWChar[$j];}else{//修正部分文字if ($chrAsc &#61;&#61; -9254) // 修正“圳”字$pyString .&#61; "Zhen";else{//echo count($this->pyValue);die();for ($i &#61; (count($this->pyValue) - 1); $i >&#61; 0; $i--){if ($this->pyValue[$i] <&#61; $chrAsc){$pyString .&#61; $this->pyName[$i];break;}}}}}// 非中文字符else{$pyString .&#61; $noWChar[$j];}}return $pyString;}}

 

转:https://www.cnblogs.com/mahatmasmile/p/3376570.html



推荐阅读
author-avatar
李长倩63399
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有