获得汉字的拼音首字母以及整个拼音
2009-01-12 17:51
661 查看
1 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
go
获得全部拼音
if exists (select 1 from sysobjects
where id = object_id('pinyin')
and type = 'U')
drop table pinyin
go
CREATE TABLE pinyin (py varchar(10) NOT NULL DEFAULT '', code int NOT NULL DEFAULT 0)
go
INSERT INTO pinyin values('a',-20319 )
INSERT INTO pinyin values('ai', -20317 )
INSERT INTO pinyin values('an' ,-20304 )
INSERT INTO pinyin values('ang' ,-20295)
INSERT INTO pinyin values('ao' ,-20292 )
INSERT INTO pinyin values('ba' ,-20283 )
INSERT INTO pinyin values('bai', -20265)
INSERT INTO pinyin values('ban', -20257)
INSERT INTO pinyin values('bang', -20242)
INSERT INTO pinyin values('bao' ,-20230)
INSERT INTO pinyin values('bei' ,-20051)
INSERT INTO pinyin values('ben' ,-20036)
INSERT INTO pinyin values('beng' ,-20032)
INSERT INTO pinyin values('bi' ,-20026 )
INSERT INTO pinyin values('bian' ,-20002)
INSERT INTO pinyin values('biao' ,-19990)
INSERT INTO pinyin values('bie' ,-19986 )
INSERT INTO pinyin values('bin' ,-19982 )
INSERT INTO pinyin values('bing' ,-19976)
INSERT INTO pinyin values('bo' ,-19805 )
INSERT INTO pinyin values('bu' ,-19784 )
INSERT INTO pinyin values('ca' ,-19775 )
INSERT INTO pinyin values('cai' ,-19774 )
INSERT INTO pinyin values('can' ,-19763 )
INSERT INTO pinyin values('cang' ,-19756)
INSERT INTO pinyin values('cao' ,-19751 )
INSERT INTO pinyin values('ce' ,-19746 )
INSERT INTO pinyin values('ceng' ,-19741)
INSERT INTO pinyin values('cha' ,-19739 )
INSERT INTO pinyin values('chai' ,-19728)
INSERT INTO pinyin values('chan' ,-19725)
INSERT INTO pinyin values('chang' ,-19715)
INSERT INTO pinyin values('chao' ,-19540)
INSERT INTO pinyin values('che' ,-19531 )
INSERT INTO pinyin values('chen' ,-19525)
INSERT INTO pinyin values('cheng' ,-19515)
INSERT INTO pinyin values('chi' ,-19500 )
INSERT INTO pinyin values('chong' ,-19484)
INSERT INTO pinyin values('chou' ,-19479)
INSERT INTO pinyin values('chu' ,-19467 )
INSERT INTO pinyin values('chuai' ,-19289)
INSERT INTO pinyin values('chuan' ,-19288)
INSERT INTO pinyin values('chuang' ,-19281)
INSERT INTO pinyin values('chui' ,-19275 )
INSERT INTO pinyin values('chun' ,-19270 )
INSERT INTO pinyin values('chuo' ,-19263 )
INSERT INTO pinyin values('ci' ,-19261 )
INSERT INTO pinyin values('cong' ,-19249 )
INSERT INTO pinyin values('cou' ,-19243 )
INSERT INTO pinyin values('cu' ,-19242 )
INSERT INTO pinyin values('cuan' ,-19238 )
INSERT INTO pinyin values('cui', -19235 )
INSERT INTO pinyin values('cun' ,-19227 )
INSERT INTO pinyin values('cuo' ,-19224 )
INSERT INTO pinyin values('da' ,-19218 )
INSERT INTO pinyin values('dai' ,-19212 )
INSERT INTO pinyin values('dan' ,-19038 )
INSERT INTO pinyin values('dang' ,-19023 )
INSERT INTO pinyin values('dao' ,-19018 )
INSERT INTO pinyin values('de' ,-19006 )
INSERT INTO pinyin values('deng' ,-19003 )
INSERT INTO pinyin values('di' ,-18996 )
INSERT INTO pinyin values('dian' ,-18977 )
INSERT INTO pinyin values('diao' ,-18961 )
INSERT INTO pinyin values('die' ,-18952 )
INSERT INTO pinyin values('ding' ,-18783 )
INSERT INTO pinyin values('diu' ,-18774 )
INSERT INTO pinyin values('dong' ,-18773 )
INSERT INTO pinyin values('dou' ,-18763 )
INSERT INTO pinyin values('du' ,-18756 )
INSERT INTO pinyin values('duan' ,-18741 )
INSERT INTO pinyin values('dui' ,-18735 )
INSERT INTO pinyin values('dun' ,-18731 )
INSERT INTO pinyin values('duo' ,-18722 )
INSERT INTO pinyin values('e' ,-18710 )
INSERT INTO pinyin values('en' ,-18697 )
INSERT INTO pinyin values('er' ,-18696 )
INSERT INTO pinyin values('fa' ,-18526 )
INSERT INTO pinyin values('fan' ,-18518 )
INSERT INTO pinyin values('fang', -18501 )
INSERT INTO pinyin values('fei' ,-18490 )
INSERT INTO pinyin values('fen' ,-18478 )
INSERT INTO pinyin values('feng' ,-18463 )
INSERT INTO pinyin values('fo' ,-18448 )
INSERT INTO pinyin values('fou' ,-18447 )
INSERT INTO pinyin values('fu' ,-18446 )
INSERT INTO pinyin values('ga' ,-18239 )
INSERT INTO pinyin values('gai' ,-18237 )
INSERT INTO pinyin values('gan' ,-18231 )
INSERT INTO pinyin values('gang', -18220 )
INSERT INTO pinyin values('gao' ,-18211 )
INSERT INTO pinyin values('ge' ,-18201 )
INSERT INTO pinyin values('gei' ,-18184 )
INSERT INTO pinyin values('gen' ,-18183 )
INSERT INTO pinyin values('geng', -18181 )
INSERT INTO pinyin values('gong', -18012 )
INSERT INTO pinyin values('gou' ,-17997 )
INSERT INTO pinyin values('gu' ,-17988 )
INSERT INTO pinyin values('gua' ,-17970 )
INSERT INTO pinyin values('guai', -17964 )
INSERT INTO pinyin values('guan', -17961 )
INSERT INTO pinyin values('guang', -17950)
INSERT INTO pinyin values('gui' ,-17947 )
INSERT INTO pinyin values('gun' ,-17931 )
INSERT INTO pinyin values('guo' ,-17928 )
INSERT INTO pinyin values('ha' ,-17922 )
INSERT INTO pinyin values('hai' ,-17759 )
INSERT INTO pinyin values('han' ,-17752 )
INSERT INTO pinyin values('hang' ,-17733 )
INSERT INTO pinyin values('hao' ,-17730 )
INSERT INTO pinyin values('he' ,-17721 )
INSERT INTO pinyin values('hei', -17703 )
INSERT INTO pinyin values('hen', -17701 )
INSERT INTO pinyin values('heng', -17697 )
INSERT INTO pinyin values('hong', -17692 )
INSERT INTO pinyin values('hou' ,-17683 )
INSERT INTO pinyin values('hu' ,-17676 )
INSERT INTO pinyin values('hua', -17496 )
INSERT INTO pinyin values('huai', -17487 )
INSERT INTO pinyin values('huan', -17482 )
INSERT INTO pinyin values('huang', -17468)
INSERT INTO pinyin values('hui' ,-17454 )
INSERT INTO pinyin values('hun' ,-17433 )
INSERT INTO pinyin values('huo' ,-17427 )
INSERT INTO pinyin values('ji' ,-17417 )
INSERT INTO pinyin values('jia', -17202 )
INSERT INTO pinyin values('jian', -17185 )
INSERT INTO pinyin values('jiang', -16983)
INSERT INTO pinyin values('jiao' ,-16970 )
INSERT INTO pinyin values('jie' ,-16942 )
INSERT INTO pinyin values('jin' ,-16915 )
INSERT INTO pinyin values('jing', -16733 )
INSERT INTO pinyin values('jiong', -16708)
INSERT INTO pinyin values('jiu' ,-16706 )
INSERT INTO pinyin values('ju' ,-16689 )
INSERT INTO pinyin values('juan', -16664 )
INSERT INTO pinyin values('jue' ,-16657 )
INSERT INTO pinyin values('jun' ,-16647 )
INSERT INTO pinyin values('ka' ,-16474 )
INSERT INTO pinyin values('kai', -16470 )
INSERT INTO pinyin values('kan', -16465 )
INSERT INTO pinyin values('kang', -16459 )
INSERT INTO pinyin values('kao' ,-16452 )
INSERT INTO pinyin values('ke' ,-16448 )
INSERT INTO pinyin values('ken', -16433 )
INSERT INTO pinyin values('keng', -16429 )
INSERT INTO pinyin values('kong', -16427 )
INSERT INTO pinyin values('kou' ,-16423 )
INSERT INTO pinyin values('ku' ,-16419 )
INSERT INTO pinyin values('kua', -16412 )
INSERT INTO pinyin values('kuai', -16407 )
INSERT INTO pinyin values('kuan', -16403 )
INSERT INTO pinyin values('kuang', -16401)
INSERT INTO pinyin values('kui' ,-16393 )
INSERT INTO pinyin values('kun' ,-16220 )
INSERT INTO pinyin values('kuo' ,-16216 )
INSERT INTO pinyin values('la' ,-16212 )
INSERT INTO pinyin values('lai' ,-16205 )
INSERT INTO pinyin values('lan' ,-16202 )
INSERT INTO pinyin values('lang' ,-16187 )
INSERT INTO pinyin values('lao' ,-16180 )
INSERT INTO pinyin values('le' ,-16171 )
INSERT INTO pinyin values('lei', -16169 )
INSERT INTO pinyin values('leng', -16158 )
INSERT INTO pinyin values('li' ,-16155 )
INSERT INTO pinyin values('lia', -15959 )
INSERT INTO pinyin values('lian', -15958 )
INSERT INTO pinyin values('liang', -15944)
INSERT INTO pinyin values('liao' ,-15933 )
INSERT INTO pinyin values('lie' ,-15920 )
INSERT INTO pinyin values('lin' ,-15915 )
INSERT INTO pinyin values('ling', -15903 )
INSERT INTO pinyin values('liu' ,-15889 )
INSERT INTO pinyin values('long', -15878 )
INSERT INTO pinyin values('lou' ,-15707 )
INSERT INTO pinyin values('lu' ,-15701 )
INSERT INTO pinyin values('luan', -15667 )
INSERT INTO pinyin values('lue' ,-15661 )
INSERT INTO pinyin values('lun' ,-15659 )
INSERT INTO pinyin values('luo' ,-15652 )
INSERT INTO pinyin values('ma' ,-15640 )
INSERT INTO pinyin values('mai', -15631 )
INSERT INTO pinyin values('man', -15625 )
INSERT INTO pinyin values('mang', -15454 )
INSERT INTO pinyin values('mao' ,-15448 )
INSERT INTO pinyin values('me' ,-15436 )
INSERT INTO pinyin values('mei' ,-15435 )
INSERT INTO pinyin values('men' ,-15419 )
INSERT INTO pinyin values('meng', -15416 )
INSERT INTO pinyin values('mi' ,-15408 )
INSERT INTO pinyin values('mian', -15394 )
INSERT INTO pinyin values('miao', -15385 )
INSERT INTO pinyin values('mie' ,-15377 )
INSERT INTO pinyin values('min' ,-15375 )
INSERT INTO pinyin values('ming', -15369 )
INSERT INTO pinyin values('miu' ,-15363 )
INSERT INTO pinyin values('mo' ,-15362 )
INSERT INTO pinyin values('mou' ,-15183 )
INSERT INTO pinyin values('na' ,-15165 )
INSERT INTO pinyin values('nai', -15158 )
INSERT INTO pinyin values('nan', -15153 )
INSERT INTO pinyin values('nang', -15150 )
INSERT INTO pinyin values('nao' ,-15149 )
INSERT INTO pinyin values('ne' ,-15144 )
INSERT INTO pinyin values('nei', -15143 )
INSERT INTO pinyin values('nen' ,-15141 )
INSERT INTO pinyin values('neng', -15140 )
INSERT INTO pinyin values('ni' ,-15139 )
INSERT INTO pinyin values('nian', -15128 )
INSERT INTO pinyin values('niao' ,-15119 )
INSERT INTO pinyin values('nie' ,-15117 )
INSERT INTO pinyin values('nin' ,-15110 )
INSERT INTO pinyin values('ning' ,-15109 )
INSERT INTO pinyin values('niu' ,-14941 )
INSERT INTO pinyin values('nong', -14937 )
INSERT INTO pinyin values('nu' ,-14933 )
INSERT INTO pinyin values('nv' ,-14930 )
INSERT INTO pinyin values('nuan', -14929 )
INSERT INTO pinyin values('nue' ,-14928 )
INSERT INTO pinyin values('nuo' ,-14926 )
INSERT INTO pinyin values('o' ,-14922 )
INSERT INTO pinyin values('ou', -14921 )
INSERT INTO pinyin values('pa', -14914 )
INSERT INTO pinyin values('pan', -14902 )
INSERT INTO pinyin values('pang', -14894 )
INSERT INTO pinyin values('pao' ,-14889 )
INSERT INTO pinyin values('pei' ,-14882 )
INSERT INTO pinyin values('pen' ,-14873 )
INSERT INTO pinyin values('peng', -14871 )
INSERT INTO pinyin values('pi' ,-14857 )
INSERT INTO pinyin values('pian', -14678 )
INSERT INTO pinyin values('piao', -14674 )
INSERT INTO pinyin values('pie' ,-14670 )
INSERT INTO pinyin values('pin' ,-14668 )
INSERT INTO pinyin values('ping', -14663 )
INSERT INTO pinyin values('po' ,-14654 )
INSERT INTO pinyin values('pu' ,-14645 )
INSERT INTO pinyin values('qi' ,-14630 )
INSERT INTO pinyin values('qia' ,-14594 )
INSERT INTO pinyin values('qian', -14429 )
INSERT INTO pinyin values('qiang', -14407)
INSERT INTO pinyin values('qiao' ,-14399 )
INSERT INTO pinyin values('qie' ,-14384 )
INSERT INTO pinyin values('qin' ,-14379 )
INSERT INTO pinyin values('qing', -14368 )
INSERT INTO pinyin values('qiong', -14355)
INSERT INTO pinyin values('qiu' ,-14353 )
INSERT INTO pinyin values('qu' ,-14345 )
INSERT INTO pinyin values('quan', -14170 )
INSERT INTO pinyin values('que' ,-14159 )
INSERT INTO pinyin values('qun' ,-14151 )
INSERT INTO pinyin values('ran' ,-14149 )
INSERT INTO pinyin values('rang' ,-14145 )
INSERT INTO pinyin values('rao' ,-14140 )
INSERT INTO pinyin values('re' ,-14137 )
INSERT INTO pinyin values('ren', -14135 )
INSERT INTO pinyin values('reng', -14125 )
INSERT INTO pinyin values('ri' ,-14123 )
INSERT INTO pinyin values('rong', -14122 )
INSERT INTO pinyin values('rou' ,-14112 )
INSERT INTO pinyin values('ru' ,-14109 )
INSERT INTO pinyin values('ruan', -14099 )
INSERT INTO pinyin values('rui' ,-14097 )
INSERT INTO pinyin values('ruo' ,-14092 )
INSERT INTO pinyin values('sa', -14090 )
INSERT INTO pinyin values('sai', -14087 )
INSERT INTO pinyin values('san', -14083 )
INSERT INTO pinyin values('sang', -13917 )
INSERT INTO pinyin values('sao' ,-13914 )
INSERT INTO pinyin values('se' ,-13910 )
INSERT INTO pinyin values('sen', -13907 )
INSERT INTO pinyin values('seng', -13906 )
INSERT INTO pinyin values('sha' ,-13905 )
INSERT INTO pinyin values('shai', -13896 )
INSERT INTO pinyin values('shan', -13894 )
INSERT INTO pinyin values('shang', -13878)
INSERT INTO pinyin values('shao' ,-13870 )
INSERT INTO pinyin values('she' ,-13859 )
INSERT INTO pinyin values('shen' ,-13847 )
INSERT INTO pinyin values('sheng' ,-13831)
INSERT INTO pinyin values('shi' ,-13658 )
INSERT INTO pinyin values('shou', -13611 )
INSERT INTO pinyin values('shu' ,-13601 )
INSERT INTO pinyin values('shua', -13406 )
INSERT INTO pinyin values('shuai', -13404)
INSERT INTO pinyin values('shuan', -13400)
INSERT INTO pinyin values('shuang', -13398)
INSERT INTO pinyin values('shui' ,-13395 )
INSERT INTO pinyin values('shun' ,-13391 )
INSERT INTO pinyin values('shuo' ,-13387 )
INSERT INTO pinyin values('si' ,-13383 )
INSERT INTO pinyin values('song', -13367 )
INSERT INTO pinyin values('sou', -13359 )
INSERT INTO pinyin values('su' ,-13356 )
INSERT INTO pinyin values('suan', -13343 )
INSERT INTO pinyin values('sui' ,-13340 )
INSERT INTO pinyin values('sun' ,-13329 )
INSERT INTO pinyin values('suo' ,-13326 )
INSERT INTO pinyin values('ta' ,-13318 )
INSERT INTO pinyin values('tai', -13147 )
INSERT INTO pinyin values('tan', -13138 )
INSERT INTO pinyin values('tang', -13120 )
INSERT INTO pinyin values('tao' ,-13107 )
INSERT INTO pinyin values('te' ,-13096 )
INSERT INTO pinyin values('teng', -13095 )
INSERT INTO pinyin values('ti' ,-13091 )
INSERT INTO pinyin values('tian', -13076 )
INSERT INTO pinyin values('tiao', -13068 )
INSERT INTO pinyin values('tie' ,-13063 )
INSERT INTO pinyin values('ting', -13060 )
INSERT INTO pinyin values('tong', -12888 )
INSERT INTO pinyin values('tou' ,-12875 )
INSERT INTO pinyin values('tu' ,-12871 )
INSERT INTO pinyin values('tuan', -12860 )
INSERT INTO pinyin values('tui', -12858 )
INSERT INTO pinyin values('tun' ,-12852 )
INSERT INTO pinyin values('tuo' ,-12849 )
INSERT INTO pinyin values('wa' ,-12838 )
INSERT INTO pinyin values('wai' ,-12831 )
INSERT INTO pinyin values('wan' ,-12829 )
INSERT INTO pinyin values('wang', -12812 )
INSERT INTO pinyin values('wei' ,-12802 )
INSERT INTO pinyin values('wen' ,-12607 )
INSERT INTO pinyin values('weng' ,-12597 )
INSERT INTO pinyin values('wo' ,-12594 )
INSERT INTO pinyin values('wu' ,-12585 )
INSERT INTO pinyin values('xi' ,-12556 )
INSERT INTO pinyin values('xia', -12359 )
INSERT INTO pinyin values('xian', -12346 )
INSERT INTO pinyin values('xiang', -12320)
INSERT INTO pinyin values('xiao' ,-12300 )
INSERT INTO pinyin values('xie' ,-12120 )
INSERT INTO pinyin values('xin' ,-12099 )
INSERT INTO pinyin values('xing', -12089 )
INSERT INTO pinyin values('xiong', -12074)
INSERT INTO pinyin values('xiu' ,-12067 )
INSERT INTO pinyin values('xu' ,-12058 )
INSERT INTO pinyin values('xuan', -12039 )
INSERT INTO pinyin values('xue' ,-11867 )
INSERT INTO pinyin values('xun' ,-11861 )
INSERT INTO pinyin values('ya' ,-11847 )
INSERT INTO pinyin values('yan', -11831 )
INSERT INTO pinyin values('yang', -11798 )
INSERT INTO pinyin values('yao' ,-11781 )
INSERT INTO pinyin values('ye' ,-11604 )
INSERT INTO pinyin values('yi' ,-11589 )
INSERT INTO pinyin values('yin', -11536 )
INSERT INTO pinyin values('ying', -11358 )
INSERT INTO pinyin values('yo' ,-11340 )
INSERT INTO pinyin values('yong', -11339 )
INSERT INTO pinyin values('you' ,-11324 )
INSERT INTO pinyin values('yu' ,-11303 )
INSERT INTO pinyin values('yuan', -11097 )
INSERT INTO pinyin values('yue' ,-11077 )
INSERT INTO pinyin values('yun' ,-11067 )
INSERT INTO pinyin values('za' ,-11055 )
INSERT INTO pinyin values('zai' ,-11052 )
INSERT INTO pinyin values('zan' ,-11045 )
INSERT INTO pinyin values('zang', -11041 )
INSERT INTO pinyin values('zao' ,-11038 )
INSERT INTO pinyin values('ze' ,-11024 )
INSERT INTO pinyin values('zei', -11020 )
INSERT INTO pinyin values('zen' ,-11019 )
INSERT INTO pinyin values('zeng', -11018 )
INSERT INTO pinyin values('zha' ,-11014 )
INSERT INTO pinyin values('zhai', -10838 )
INSERT INTO pinyin values('zhan', -10832 )
INSERT INTO pinyin values('zhang', -10815)
INSERT INTO pinyin values('zhao' ,-10800 )
INSERT INTO pinyin values('zhe' ,-10790 )
INSERT INTO pinyin values('zhen' ,-10780 )
INSERT INTO pinyin values('zheng', -10764)
INSERT INTO pinyin values('zhi' ,-10587 )
INSERT INTO pinyin values('zhong', -10544)
INSERT INTO pinyin values('zhou', -10533 )
INSERT INTO pinyin values('zhu' ,-10519 )
INSERT INTO pinyin values('zhua', -10331 )
INSERT INTO pinyin values('zhuai', -10329)
INSERT INTO pinyin values('zhuan', -10328)
INSERT INTO pinyin values('zhuang', -10322)
INSERT INTO pinyin values('zhui' ,-10315 )
INSERT INTO pinyin values('zhun', -10309 )
INSERT INTO pinyin values('zhuo', -10307 )
INSERT INTO pinyin values('zi' ,-10296 )
INSERT INTO pinyin values('zong', -10281 )
INSERT INTO pinyin values('zou' ,-10274 )
INSERT INTO pinyin values('zu' ,-10270 )
INSERT INTO pinyin values('zuan', -10262 )
INSERT INTO pinyin values('zui' ,-10260 )
INSERT INTO pinyin values('zun' ,-10256 )
INSERT INTO pinyin values('zuo' ,-10254 )
go
if exists (select 1
from sysobjects
where id = object_id('fun_getPY_Whole'))
drop Function fun_getPY_Whole
go
create function fun_getPY_Whole(@str varchar(4000))
returns varchar(4000) as
BEGIN
declare @word varchar(10),@PY varchar(4000)
DECLARE @v int
declare @temp varchar(10)
set @PY=''
while len(@str)>0
BEGIN
set @word=left(@str,1)
if unicode(@word) between 19968 and 19968+20901
begin
select @v = convert(int,substring(convert(varbinary,@word),1,1)) * 256 + convert(int,substring(convert
(varbinary,@word),2,1))-65535
select @temp = MAX(py) FROM pinyin WHERE [code]<@v
set @PY=@PY+@temp
end
else
set @PY=@PY + @word
set @str=right(@str,len(@str)-1)
END
return @PY
END
go
参考:
http://topic.csdn.net/t/20020705/10/851769.html#
http://www.shouker.com/user4/dna/2008/4/22/121031.html
http://www.sudu.cn/info/html/edu/database/20071226/22305.html
2 c#
//获得整个拼音
public string GetSpell(string x)
{
int[] iA = 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
};
string[] sA = new string[]
{
"a","ai","an","ang","ao"
,"ba","bai","ban","bang","bao","bei","ben","beng","bi","bian","biao","bie","bin"
,"bing","bo","bu"
,"ca","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"
};
byte[] B = new byte[2];
string s = "";
char[] c = x.ToCharArray();
for (int j = 0; j < c.Length; j++)
{
B = System.Text.Encoding.Default.GetBytes(c[j].ToString());
if ((int)(B[0]) <= 160 && (int)(B[0]) >= 0)
{
s += c[j];
}
else
{
for (int i = (iA.Length - 1); i >= 0; i--)
{
if (iA[i] <= (int)(B[0]) * 256 + (int)(B[1]) - 65536)
{
s += sA[i];
break;
}
}
}
}
return s;
}
代码:
获得首字母:
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
go
获得全部拼音
if exists (select 1 from sysobjects
where id = object_id('pinyin')
and type = 'U')
drop table pinyin
go
CREATE TABLE pinyin (py varchar(10) NOT NULL DEFAULT '', code int NOT NULL DEFAULT 0)
go
INSERT INTO pinyin values('a',-20319 )
INSERT INTO pinyin values('ai', -20317 )
INSERT INTO pinyin values('an' ,-20304 )
INSERT INTO pinyin values('ang' ,-20295)
INSERT INTO pinyin values('ao' ,-20292 )
INSERT INTO pinyin values('ba' ,-20283 )
INSERT INTO pinyin values('bai', -20265)
INSERT INTO pinyin values('ban', -20257)
INSERT INTO pinyin values('bang', -20242)
INSERT INTO pinyin values('bao' ,-20230)
INSERT INTO pinyin values('bei' ,-20051)
INSERT INTO pinyin values('ben' ,-20036)
INSERT INTO pinyin values('beng' ,-20032)
INSERT INTO pinyin values('bi' ,-20026 )
INSERT INTO pinyin values('bian' ,-20002)
INSERT INTO pinyin values('biao' ,-19990)
INSERT INTO pinyin values('bie' ,-19986 )
INSERT INTO pinyin values('bin' ,-19982 )
INSERT INTO pinyin values('bing' ,-19976)
INSERT INTO pinyin values('bo' ,-19805 )
INSERT INTO pinyin values('bu' ,-19784 )
INSERT INTO pinyin values('ca' ,-19775 )
INSERT INTO pinyin values('cai' ,-19774 )
INSERT INTO pinyin values('can' ,-19763 )
INSERT INTO pinyin values('cang' ,-19756)
INSERT INTO pinyin values('cao' ,-19751 )
INSERT INTO pinyin values('ce' ,-19746 )
INSERT INTO pinyin values('ceng' ,-19741)
INSERT INTO pinyin values('cha' ,-19739 )
INSERT INTO pinyin values('chai' ,-19728)
INSERT INTO pinyin values('chan' ,-19725)
INSERT INTO pinyin values('chang' ,-19715)
INSERT INTO pinyin values('chao' ,-19540)
INSERT INTO pinyin values('che' ,-19531 )
INSERT INTO pinyin values('chen' ,-19525)
INSERT INTO pinyin values('cheng' ,-19515)
INSERT INTO pinyin values('chi' ,-19500 )
INSERT INTO pinyin values('chong' ,-19484)
INSERT INTO pinyin values('chou' ,-19479)
INSERT INTO pinyin values('chu' ,-19467 )
INSERT INTO pinyin values('chuai' ,-19289)
INSERT INTO pinyin values('chuan' ,-19288)
INSERT INTO pinyin values('chuang' ,-19281)
INSERT INTO pinyin values('chui' ,-19275 )
INSERT INTO pinyin values('chun' ,-19270 )
INSERT INTO pinyin values('chuo' ,-19263 )
INSERT INTO pinyin values('ci' ,-19261 )
INSERT INTO pinyin values('cong' ,-19249 )
INSERT INTO pinyin values('cou' ,-19243 )
INSERT INTO pinyin values('cu' ,-19242 )
INSERT INTO pinyin values('cuan' ,-19238 )
INSERT INTO pinyin values('cui', -19235 )
INSERT INTO pinyin values('cun' ,-19227 )
INSERT INTO pinyin values('cuo' ,-19224 )
INSERT INTO pinyin values('da' ,-19218 )
INSERT INTO pinyin values('dai' ,-19212 )
INSERT INTO pinyin values('dan' ,-19038 )
INSERT INTO pinyin values('dang' ,-19023 )
INSERT INTO pinyin values('dao' ,-19018 )
INSERT INTO pinyin values('de' ,-19006 )
INSERT INTO pinyin values('deng' ,-19003 )
INSERT INTO pinyin values('di' ,-18996 )
INSERT INTO pinyin values('dian' ,-18977 )
INSERT INTO pinyin values('diao' ,-18961 )
INSERT INTO pinyin values('die' ,-18952 )
INSERT INTO pinyin values('ding' ,-18783 )
INSERT INTO pinyin values('diu' ,-18774 )
INSERT INTO pinyin values('dong' ,-18773 )
INSERT INTO pinyin values('dou' ,-18763 )
INSERT INTO pinyin values('du' ,-18756 )
INSERT INTO pinyin values('duan' ,-18741 )
INSERT INTO pinyin values('dui' ,-18735 )
INSERT INTO pinyin values('dun' ,-18731 )
INSERT INTO pinyin values('duo' ,-18722 )
INSERT INTO pinyin values('e' ,-18710 )
INSERT INTO pinyin values('en' ,-18697 )
INSERT INTO pinyin values('er' ,-18696 )
INSERT INTO pinyin values('fa' ,-18526 )
INSERT INTO pinyin values('fan' ,-18518 )
INSERT INTO pinyin values('fang', -18501 )
INSERT INTO pinyin values('fei' ,-18490 )
INSERT INTO pinyin values('fen' ,-18478 )
INSERT INTO pinyin values('feng' ,-18463 )
INSERT INTO pinyin values('fo' ,-18448 )
INSERT INTO pinyin values('fou' ,-18447 )
INSERT INTO pinyin values('fu' ,-18446 )
INSERT INTO pinyin values('ga' ,-18239 )
INSERT INTO pinyin values('gai' ,-18237 )
INSERT INTO pinyin values('gan' ,-18231 )
INSERT INTO pinyin values('gang', -18220 )
INSERT INTO pinyin values('gao' ,-18211 )
INSERT INTO pinyin values('ge' ,-18201 )
INSERT INTO pinyin values('gei' ,-18184 )
INSERT INTO pinyin values('gen' ,-18183 )
INSERT INTO pinyin values('geng', -18181 )
INSERT INTO pinyin values('gong', -18012 )
INSERT INTO pinyin values('gou' ,-17997 )
INSERT INTO pinyin values('gu' ,-17988 )
INSERT INTO pinyin values('gua' ,-17970 )
INSERT INTO pinyin values('guai', -17964 )
INSERT INTO pinyin values('guan', -17961 )
INSERT INTO pinyin values('guang', -17950)
INSERT INTO pinyin values('gui' ,-17947 )
INSERT INTO pinyin values('gun' ,-17931 )
INSERT INTO pinyin values('guo' ,-17928 )
INSERT INTO pinyin values('ha' ,-17922 )
INSERT INTO pinyin values('hai' ,-17759 )
INSERT INTO pinyin values('han' ,-17752 )
INSERT INTO pinyin values('hang' ,-17733 )
INSERT INTO pinyin values('hao' ,-17730 )
INSERT INTO pinyin values('he' ,-17721 )
INSERT INTO pinyin values('hei', -17703 )
INSERT INTO pinyin values('hen', -17701 )
INSERT INTO pinyin values('heng', -17697 )
INSERT INTO pinyin values('hong', -17692 )
INSERT INTO pinyin values('hou' ,-17683 )
INSERT INTO pinyin values('hu' ,-17676 )
INSERT INTO pinyin values('hua', -17496 )
INSERT INTO pinyin values('huai', -17487 )
INSERT INTO pinyin values('huan', -17482 )
INSERT INTO pinyin values('huang', -17468)
INSERT INTO pinyin values('hui' ,-17454 )
INSERT INTO pinyin values('hun' ,-17433 )
INSERT INTO pinyin values('huo' ,-17427 )
INSERT INTO pinyin values('ji' ,-17417 )
INSERT INTO pinyin values('jia', -17202 )
INSERT INTO pinyin values('jian', -17185 )
INSERT INTO pinyin values('jiang', -16983)
INSERT INTO pinyin values('jiao' ,-16970 )
INSERT INTO pinyin values('jie' ,-16942 )
INSERT INTO pinyin values('jin' ,-16915 )
INSERT INTO pinyin values('jing', -16733 )
INSERT INTO pinyin values('jiong', -16708)
INSERT INTO pinyin values('jiu' ,-16706 )
INSERT INTO pinyin values('ju' ,-16689 )
INSERT INTO pinyin values('juan', -16664 )
INSERT INTO pinyin values('jue' ,-16657 )
INSERT INTO pinyin values('jun' ,-16647 )
INSERT INTO pinyin values('ka' ,-16474 )
INSERT INTO pinyin values('kai', -16470 )
INSERT INTO pinyin values('kan', -16465 )
INSERT INTO pinyin values('kang', -16459 )
INSERT INTO pinyin values('kao' ,-16452 )
INSERT INTO pinyin values('ke' ,-16448 )
INSERT INTO pinyin values('ken', -16433 )
INSERT INTO pinyin values('keng', -16429 )
INSERT INTO pinyin values('kong', -16427 )
INSERT INTO pinyin values('kou' ,-16423 )
INSERT INTO pinyin values('ku' ,-16419 )
INSERT INTO pinyin values('kua', -16412 )
INSERT INTO pinyin values('kuai', -16407 )
INSERT INTO pinyin values('kuan', -16403 )
INSERT INTO pinyin values('kuang', -16401)
INSERT INTO pinyin values('kui' ,-16393 )
INSERT INTO pinyin values('kun' ,-16220 )
INSERT INTO pinyin values('kuo' ,-16216 )
INSERT INTO pinyin values('la' ,-16212 )
INSERT INTO pinyin values('lai' ,-16205 )
INSERT INTO pinyin values('lan' ,-16202 )
INSERT INTO pinyin values('lang' ,-16187 )
INSERT INTO pinyin values('lao' ,-16180 )
INSERT INTO pinyin values('le' ,-16171 )
INSERT INTO pinyin values('lei', -16169 )
INSERT INTO pinyin values('leng', -16158 )
INSERT INTO pinyin values('li' ,-16155 )
INSERT INTO pinyin values('lia', -15959 )
INSERT INTO pinyin values('lian', -15958 )
INSERT INTO pinyin values('liang', -15944)
INSERT INTO pinyin values('liao' ,-15933 )
INSERT INTO pinyin values('lie' ,-15920 )
INSERT INTO pinyin values('lin' ,-15915 )
INSERT INTO pinyin values('ling', -15903 )
INSERT INTO pinyin values('liu' ,-15889 )
INSERT INTO pinyin values('long', -15878 )
INSERT INTO pinyin values('lou' ,-15707 )
INSERT INTO pinyin values('lu' ,-15701 )
INSERT INTO pinyin values('luan', -15667 )
INSERT INTO pinyin values('lue' ,-15661 )
INSERT INTO pinyin values('lun' ,-15659 )
INSERT INTO pinyin values('luo' ,-15652 )
INSERT INTO pinyin values('ma' ,-15640 )
INSERT INTO pinyin values('mai', -15631 )
INSERT INTO pinyin values('man', -15625 )
INSERT INTO pinyin values('mang', -15454 )
INSERT INTO pinyin values('mao' ,-15448 )
INSERT INTO pinyin values('me' ,-15436 )
INSERT INTO pinyin values('mei' ,-15435 )
INSERT INTO pinyin values('men' ,-15419 )
INSERT INTO pinyin values('meng', -15416 )
INSERT INTO pinyin values('mi' ,-15408 )
INSERT INTO pinyin values('mian', -15394 )
INSERT INTO pinyin values('miao', -15385 )
INSERT INTO pinyin values('mie' ,-15377 )
INSERT INTO pinyin values('min' ,-15375 )
INSERT INTO pinyin values('ming', -15369 )
INSERT INTO pinyin values('miu' ,-15363 )
INSERT INTO pinyin values('mo' ,-15362 )
INSERT INTO pinyin values('mou' ,-15183 )
INSERT INTO pinyin values('na' ,-15165 )
INSERT INTO pinyin values('nai', -15158 )
INSERT INTO pinyin values('nan', -15153 )
INSERT INTO pinyin values('nang', -15150 )
INSERT INTO pinyin values('nao' ,-15149 )
INSERT INTO pinyin values('ne' ,-15144 )
INSERT INTO pinyin values('nei', -15143 )
INSERT INTO pinyin values('nen' ,-15141 )
INSERT INTO pinyin values('neng', -15140 )
INSERT INTO pinyin values('ni' ,-15139 )
INSERT INTO pinyin values('nian', -15128 )
INSERT INTO pinyin values('niao' ,-15119 )
INSERT INTO pinyin values('nie' ,-15117 )
INSERT INTO pinyin values('nin' ,-15110 )
INSERT INTO pinyin values('ning' ,-15109 )
INSERT INTO pinyin values('niu' ,-14941 )
INSERT INTO pinyin values('nong', -14937 )
INSERT INTO pinyin values('nu' ,-14933 )
INSERT INTO pinyin values('nv' ,-14930 )
INSERT INTO pinyin values('nuan', -14929 )
INSERT INTO pinyin values('nue' ,-14928 )
INSERT INTO pinyin values('nuo' ,-14926 )
INSERT INTO pinyin values('o' ,-14922 )
INSERT INTO pinyin values('ou', -14921 )
INSERT INTO pinyin values('pa', -14914 )
INSERT INTO pinyin values('pan', -14902 )
INSERT INTO pinyin values('pang', -14894 )
INSERT INTO pinyin values('pao' ,-14889 )
INSERT INTO pinyin values('pei' ,-14882 )
INSERT INTO pinyin values('pen' ,-14873 )
INSERT INTO pinyin values('peng', -14871 )
INSERT INTO pinyin values('pi' ,-14857 )
INSERT INTO pinyin values('pian', -14678 )
INSERT INTO pinyin values('piao', -14674 )
INSERT INTO pinyin values('pie' ,-14670 )
INSERT INTO pinyin values('pin' ,-14668 )
INSERT INTO pinyin values('ping', -14663 )
INSERT INTO pinyin values('po' ,-14654 )
INSERT INTO pinyin values('pu' ,-14645 )
INSERT INTO pinyin values('qi' ,-14630 )
INSERT INTO pinyin values('qia' ,-14594 )
INSERT INTO pinyin values('qian', -14429 )
INSERT INTO pinyin values('qiang', -14407)
INSERT INTO pinyin values('qiao' ,-14399 )
INSERT INTO pinyin values('qie' ,-14384 )
INSERT INTO pinyin values('qin' ,-14379 )
INSERT INTO pinyin values('qing', -14368 )
INSERT INTO pinyin values('qiong', -14355)
INSERT INTO pinyin values('qiu' ,-14353 )
INSERT INTO pinyin values('qu' ,-14345 )
INSERT INTO pinyin values('quan', -14170 )
INSERT INTO pinyin values('que' ,-14159 )
INSERT INTO pinyin values('qun' ,-14151 )
INSERT INTO pinyin values('ran' ,-14149 )
INSERT INTO pinyin values('rang' ,-14145 )
INSERT INTO pinyin values('rao' ,-14140 )
INSERT INTO pinyin values('re' ,-14137 )
INSERT INTO pinyin values('ren', -14135 )
INSERT INTO pinyin values('reng', -14125 )
INSERT INTO pinyin values('ri' ,-14123 )
INSERT INTO pinyin values('rong', -14122 )
INSERT INTO pinyin values('rou' ,-14112 )
INSERT INTO pinyin values('ru' ,-14109 )
INSERT INTO pinyin values('ruan', -14099 )
INSERT INTO pinyin values('rui' ,-14097 )
INSERT INTO pinyin values('ruo' ,-14092 )
INSERT INTO pinyin values('sa', -14090 )
INSERT INTO pinyin values('sai', -14087 )
INSERT INTO pinyin values('san', -14083 )
INSERT INTO pinyin values('sang', -13917 )
INSERT INTO pinyin values('sao' ,-13914 )
INSERT INTO pinyin values('se' ,-13910 )
INSERT INTO pinyin values('sen', -13907 )
INSERT INTO pinyin values('seng', -13906 )
INSERT INTO pinyin values('sha' ,-13905 )
INSERT INTO pinyin values('shai', -13896 )
INSERT INTO pinyin values('shan', -13894 )
INSERT INTO pinyin values('shang', -13878)
INSERT INTO pinyin values('shao' ,-13870 )
INSERT INTO pinyin values('she' ,-13859 )
INSERT INTO pinyin values('shen' ,-13847 )
INSERT INTO pinyin values('sheng' ,-13831)
INSERT INTO pinyin values('shi' ,-13658 )
INSERT INTO pinyin values('shou', -13611 )
INSERT INTO pinyin values('shu' ,-13601 )
INSERT INTO pinyin values('shua', -13406 )
INSERT INTO pinyin values('shuai', -13404)
INSERT INTO pinyin values('shuan', -13400)
INSERT INTO pinyin values('shuang', -13398)
INSERT INTO pinyin values('shui' ,-13395 )
INSERT INTO pinyin values('shun' ,-13391 )
INSERT INTO pinyin values('shuo' ,-13387 )
INSERT INTO pinyin values('si' ,-13383 )
INSERT INTO pinyin values('song', -13367 )
INSERT INTO pinyin values('sou', -13359 )
INSERT INTO pinyin values('su' ,-13356 )
INSERT INTO pinyin values('suan', -13343 )
INSERT INTO pinyin values('sui' ,-13340 )
INSERT INTO pinyin values('sun' ,-13329 )
INSERT INTO pinyin values('suo' ,-13326 )
INSERT INTO pinyin values('ta' ,-13318 )
INSERT INTO pinyin values('tai', -13147 )
INSERT INTO pinyin values('tan', -13138 )
INSERT INTO pinyin values('tang', -13120 )
INSERT INTO pinyin values('tao' ,-13107 )
INSERT INTO pinyin values('te' ,-13096 )
INSERT INTO pinyin values('teng', -13095 )
INSERT INTO pinyin values('ti' ,-13091 )
INSERT INTO pinyin values('tian', -13076 )
INSERT INTO pinyin values('tiao', -13068 )
INSERT INTO pinyin values('tie' ,-13063 )
INSERT INTO pinyin values('ting', -13060 )
INSERT INTO pinyin values('tong', -12888 )
INSERT INTO pinyin values('tou' ,-12875 )
INSERT INTO pinyin values('tu' ,-12871 )
INSERT INTO pinyin values('tuan', -12860 )
INSERT INTO pinyin values('tui', -12858 )
INSERT INTO pinyin values('tun' ,-12852 )
INSERT INTO pinyin values('tuo' ,-12849 )
INSERT INTO pinyin values('wa' ,-12838 )
INSERT INTO pinyin values('wai' ,-12831 )
INSERT INTO pinyin values('wan' ,-12829 )
INSERT INTO pinyin values('wang', -12812 )
INSERT INTO pinyin values('wei' ,-12802 )
INSERT INTO pinyin values('wen' ,-12607 )
INSERT INTO pinyin values('weng' ,-12597 )
INSERT INTO pinyin values('wo' ,-12594 )
INSERT INTO pinyin values('wu' ,-12585 )
INSERT INTO pinyin values('xi' ,-12556 )
INSERT INTO pinyin values('xia', -12359 )
INSERT INTO pinyin values('xian', -12346 )
INSERT INTO pinyin values('xiang', -12320)
INSERT INTO pinyin values('xiao' ,-12300 )
INSERT INTO pinyin values('xie' ,-12120 )
INSERT INTO pinyin values('xin' ,-12099 )
INSERT INTO pinyin values('xing', -12089 )
INSERT INTO pinyin values('xiong', -12074)
INSERT INTO pinyin values('xiu' ,-12067 )
INSERT INTO pinyin values('xu' ,-12058 )
INSERT INTO pinyin values('xuan', -12039 )
INSERT INTO pinyin values('xue' ,-11867 )
INSERT INTO pinyin values('xun' ,-11861 )
INSERT INTO pinyin values('ya' ,-11847 )
INSERT INTO pinyin values('yan', -11831 )
INSERT INTO pinyin values('yang', -11798 )
INSERT INTO pinyin values('yao' ,-11781 )
INSERT INTO pinyin values('ye' ,-11604 )
INSERT INTO pinyin values('yi' ,-11589 )
INSERT INTO pinyin values('yin', -11536 )
INSERT INTO pinyin values('ying', -11358 )
INSERT INTO pinyin values('yo' ,-11340 )
INSERT INTO pinyin values('yong', -11339 )
INSERT INTO pinyin values('you' ,-11324 )
INSERT INTO pinyin values('yu' ,-11303 )
INSERT INTO pinyin values('yuan', -11097 )
INSERT INTO pinyin values('yue' ,-11077 )
INSERT INTO pinyin values('yun' ,-11067 )
INSERT INTO pinyin values('za' ,-11055 )
INSERT INTO pinyin values('zai' ,-11052 )
INSERT INTO pinyin values('zan' ,-11045 )
INSERT INTO pinyin values('zang', -11041 )
INSERT INTO pinyin values('zao' ,-11038 )
INSERT INTO pinyin values('ze' ,-11024 )
INSERT INTO pinyin values('zei', -11020 )
INSERT INTO pinyin values('zen' ,-11019 )
INSERT INTO pinyin values('zeng', -11018 )
INSERT INTO pinyin values('zha' ,-11014 )
INSERT INTO pinyin values('zhai', -10838 )
INSERT INTO pinyin values('zhan', -10832 )
INSERT INTO pinyin values('zhang', -10815)
INSERT INTO pinyin values('zhao' ,-10800 )
INSERT INTO pinyin values('zhe' ,-10790 )
INSERT INTO pinyin values('zhen' ,-10780 )
INSERT INTO pinyin values('zheng', -10764)
INSERT INTO pinyin values('zhi' ,-10587 )
INSERT INTO pinyin values('zhong', -10544)
INSERT INTO pinyin values('zhou', -10533 )
INSERT INTO pinyin values('zhu' ,-10519 )
INSERT INTO pinyin values('zhua', -10331 )
INSERT INTO pinyin values('zhuai', -10329)
INSERT INTO pinyin values('zhuan', -10328)
INSERT INTO pinyin values('zhuang', -10322)
INSERT INTO pinyin values('zhui' ,-10315 )
INSERT INTO pinyin values('zhun', -10309 )
INSERT INTO pinyin values('zhuo', -10307 )
INSERT INTO pinyin values('zi' ,-10296 )
INSERT INTO pinyin values('zong', -10281 )
INSERT INTO pinyin values('zou' ,-10274 )
INSERT INTO pinyin values('zu' ,-10270 )
INSERT INTO pinyin values('zuan', -10262 )
INSERT INTO pinyin values('zui' ,-10260 )
INSERT INTO pinyin values('zun' ,-10256 )
INSERT INTO pinyin values('zuo' ,-10254 )
go
if exists (select 1
from sysobjects
where id = object_id('fun_getPY_Whole'))
drop Function fun_getPY_Whole
go
create function fun_getPY_Whole(@str varchar(4000))
returns varchar(4000) as
BEGIN
declare @word varchar(10),@PY varchar(4000)
DECLARE @v int
declare @temp varchar(10)
set @PY=''
while len(@str)>0
BEGIN
set @word=left(@str,1)
if unicode(@word) between 19968 and 19968+20901
begin
select @v = convert(int,substring(convert(varbinary,@word),1,1)) * 256 + convert(int,substring(convert
(varbinary,@word),2,1))-65535
select @temp = MAX(py) FROM pinyin WHERE [code]<@v
set @PY=@PY+@temp
end
else
set @PY=@PY + @word
set @str=right(@str,len(@str)-1)
END
return @PY
END
go
参考:
http://topic.csdn.net/t/20020705/10/851769.html#
http://www.shouker.com/user4/dna/2008/4/22/121031.html
http://www.sudu.cn/info/html/edu/database/20071226/22305.html
2 c#
//获得整个拼音
public string GetSpell(string x)
{
int[] iA = 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
};
string[] sA = new string[]
{
"a","ai","an","ang","ao"
,"ba","bai","ban","bang","bao","bei","ben","beng","bi","bian","biao","bie","bin"
,"bing","bo","bu"
,"ca","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"
};
byte[] B = new byte[2];
string s = "";
char[] c = x.ToCharArray();
for (int j = 0; j < c.Length; j++)
{
B = System.Text.Encoding.Default.GetBytes(c[j].ToString());
if ((int)(B[0]) <= 160 && (int)(B[0]) >= 0)
{
s += c[j];
}
else
{
for (int i = (iA.Length - 1); i >= 0; i--)
{
if (iA[i] <= (int)(B[0]) * 256 + (int)(B[1]) - 65536)
{
s += sA[i];
break;
}
}
}
}
return s;
}
相关文章推荐
- 获得汉字拼音首字母的java工具类
- 获得汉字的拼音首字母
- 获得汉字拼音首字母
- oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等)
- php 获得汉字拼音首字母的函数
- 获得汉字首字母和拼音
- 获得汉字字符串拼音首字母
- 引用 使用Java获得汉字的拼音首字母
- javascript 获得汉字拼音的第一个字母
- java汉字转拼音以及得到首字母通用方法
- C#获得汉字拼音的第一个字母
- PHP利用ICU扩展intl快速实现汉字转拼音以及按拼音首字母分组排序
- 《android2.2自带通讯录》之联系人按拼音排序以及按汉字首字母或全拼搜索
- 获得汉字拼音首字母
- 获得汉字的拼音首字母源代码
- 获得汉字拼音首位字母的函数
- 获得汉字字符串拼音首字母
- 获得汉字字符串拼音首字母
- 《android2.2自带通讯录》之联系人按拼音排序以及按汉字首字母或全拼搜索
- MFC获得汉字拼音首个字母-C++版