C# 拼音转中文像百度搜索框 输入字母或者拼音 显示中文 C# 怎么实现
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/15 06:08:30
C# 拼音转中文像百度搜索框 输入字母或者拼音 显示中文 C# 怎么实现
C# 拼音转中文
像百度搜索框 输入字母或者拼音 显示中文 C# 怎么实现
C# 拼音转中文像百度搜索框 输入字母或者拼音 显示中文 C# 怎么实现
首先说明一点,输入字母或拼音显示中文不是用C#实现的,而是用数据库实现的,数据库中有一列是中文,而还有一列是拼音的简写.我刚做过一个系统,用的是VS 2010 + SQL Server 2008实现的,其中一个功能就是拼音简写的模糊查询,我设计的思想就是在数据库中设计的有中文的和拼音简写的属性,当然拼音简写不是自己手工添加的,是在SQL SQL Server 2008建立触发器实现的.
--SQL中将汉字转换成拼音,这里是转换汉字首拼音,如果需要全部转换,在以下程序中稍微改几个数字就可以了
--SQL使用
--创建翻译函数
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
--函数调用实例:
select dbo.Fun_GetPY('河南科技大学') --注意:一定要有dbo
--结果为:HNKJDX
--函数的删除
drop function dbo.Fun_GetPY
--实用案例
--表memberinfo中有字段(name,password,pinyin),拼音为ID的简写
--建立一个触发器,使表中每增加一行记录,pinyin中添加ID的简写
--注意:一张表中只能建立一个触发器
create trigger addpinyin
on memberinfo for insert ,update
as
declare @id varchar(10)
select @id=name from inserted
update memberinfo set pinyin=dbo.Fun_GetPY(@id)
where name IN (select name from inserted)
insert into memberinfo(ID,password)values('河南科技','471003')
select * from memberinfo
在实际当中拼音和中文不是一一对应的。所以你要设计对应关系,那些拼音如何对应到哪些常用的中文。通过数据关系,根据拼音提取对应的中文。