asp 汉字转拼音-多音字的处理

     2008年4月份的时候 ,我在asp当中遇到一个问题,就是汉字转为拼音的问题,里面需要处理多音字!
在sql2000数据库当中存着汉字的对应的拼音是这样的   
Id  Hanzi  Pinyin
1  啊       a  e
2  你       ni
3  重       chong  zhong
4   …          …

实现的效果:
我想要的效果是如果输入的是多音字比如“你重啊”,可以列出

(1)ni chong a
(2)ni zhong a

(3)ni chong e

(4)ni zhong e
  原来我自己用二维数组,弄了半天没有出来!后来csdn上的 gingerkang 指点,就解决了!

 

下面是解决的方法:

主要是在sql里面创建一个Function:

create table table_py (id int identity(1,1),hanzi nvarchar(1),pinyin nvarchar(30)) go insert into table_py (hanzi,pinyin) select '啊','a e' union all select '你','ni' union all select '重','chong zhong' go create function s2p(@s nvarchar(1)) returns @t table(pinyin nvarchar(10)) as begin if not exists(select 1 from table_py where hanzi=@s) begin insert into @t select @s return end declare @tstr nvarchar(30) select @tstr=pinyin from table_py where hanzi=@s while charindex(' ',@tstr)>0 begin insert into @t select left(@tstr,charindex(' ',@tstr)) select @tstr=stuff(@tstr,1,charindex(' ',@tstr),'') end insert into @t select @tstr return end go select * from s2p('你') t0,s2p('重') t1,s2p('啊') t2 go drop function s2p drop table table_py go

以上代码在sql2000和sql2005中测试通过

你可能感兴趣的:(sql,asp)