中文转拼音首字母的步骤

中文转拼音首字母的步骤

中文转拼音问题
主要有两类,一种是转换成全拼,另一种是转换成中文拼音首字母。
转换成全拼的方法网上代码很多,C#,asp,javascrpit等
转换成中文首字母时,网上有一种方法根据gb2312编码规则中一级汉字按拼音先后顺序排列的原理,通过计算出每个汉字对应的整数值然后再比较看落在哪个首字母区间上来确定汉字声母首字母,缺陷是较偏僻的二级汉字不再结果之列。
后又搜索到一个存储过程,修改后可用,原理不明。
CREATE PROCEDURE getPY
( @str nvarchar(4000) ,@PY nvarchar(4000) output)
AS
begin

declare @word nchar(1)

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 1
end
GO局域网中,无法直接建立联系,故放弃该方法。