拼音处理

原创 2003年12月29日 17:28:00

/*-1.-获得汉字字符串的首字母

   根据大力的贴子改成.将大力的两个函数合并成了一个函数.
   可以应用于助记码的查询
--转载(最早见于j9988的发表,具体原作者不明)--*/

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fGetPy]
GO

--创建取拼音函数
create function fGetPy(@Str varchar(500)='')
returns varchar(500)
as
begin
 declare @strlen int,@return varchar(500),@ii int
 declare @n int,@c char(1),@chn nchar(1)

 select @strlen=len(@str),@return='',@ii=0
 set @ii=0
 while @ii<@strlen
 begin
  select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)
  if @chn>'z'
  select @n = @n +1
     ,@c = case chn when @chn then char(@n) else @c end
   from(
    select top 27 * from (
     select chn = '吖'
     union all select '八'
     union all select '嚓'
     union all select '咑'
     union all select '妸'
     union all select '发'
     union all select '旮'
     union all select '铪'
     union all select '丌'  --because have no 'i'
     union all select '丌'
     union all select '咔'
     union all select '垃'
     union all select '嘸'
     union all select '拏'
     union all select '噢'
     union all select '妑'
     union all select '七'
     union all select '呥'
     union all select '仨'
     union all select '他'
     union all select '屲'  --no 'u'
     union all select '屲'  --no 'v'
     union all select '屲'
     union all select '夕'
     union all select '丫'
     union all select '帀'
     union all select @chn) as a
    order by chn COLLATE Chinese_PRC_CI_AS
   ) as b
  else set @c='a'
  set @return=@return+@c
 end
 return(@return)
end

go
--测试
select dbo.fgetpy('东莞市') as 东莞市,dbo.fgetpy('ab中c国人') as 中国人

--删除拼音函数
drop function fgetpy

 



/*2.--获得汉字拼音的函数

  需要创建一个拼音表,包含所有汉字的发音,这个可以通过转换全拼输入法的编码库得到,这里仅举了一个简单的例子.
--*/

--创建汉字拼音库
create table YingShe(CHR  char(2),PY varchar(10))
insert YingShe
select '长','chang'
 union all select '长','zhang'
 union all select '城','cheng'
 union all select '科','kel'
 union all select '技','ji'
 union all select '金','jin'
 union all select '立','li'
 union all select '章','zhang'
 union all select '公','gong'
 union all select '司','si'

/*--下面是两个函数,一个以表的形式返回某个字符串的全部拼音,一个返回某某个字符串的其中一个拼音
--*/

--获取汉字拼音的函数--返回所有的拼音
create function f_getpy_tb(@str varchar(100))
returns @tb table(re varchar(8000))
as
begin
declare @re table(id int,re varchar(8000))  --数据处理中间表

declare @i int,@ilen int,@splitchr varchar(1)
select @splitchr=' ' --两个拼音之间的分隔符(目的是为了通用性考虑)
 ,@i=1,@ilen=len(@str)

insert into @re select @i,py from YingShe where chr=substring(@str,@i,1)
while @i<@ilen
begin
 set @i=@i+1
 insert into @re select @i,re+@splitchr+py from @re a,YingShe b
  where a.id=@i-1 and b.chr=substring(@str,@i,1)
end

insert into @tb select re from @re where id=@i
return
end
go

--获取汉字拼音的函数--返回汉字的某一个拼音
create function f_getpy(@str varchar(100))
returns varchar(8000)
as
begin
declare @re varchar(8000)

declare @i int,@ilen int,@splitchr varchar(1)
select @splitchr=' ' --两个拼音之间的分隔符(目的是为了通用性考虑)
 ,@i=1,@ilen=len(@str)

select @re=py from YingShe where chr=substring(@str,@i,1)
while @i<@ilen
begin
 set @i=@i+1
 select top 1 @re=@re+@splitchr+py
 from YingShe where chr=substring(@str,@i,1)
end

return(@re)
end
go

--测试
--返回'长城'的所有可能拼音
select * from dbo.f_getpy_tb('长城')

--返回'长城'的拼音
select  dbo.f_getpy('长城')

--删除拼音函数
drop function f_getpy,f_getpy_tb

 

 

PHP的UTF-8中文转拼音处理类(性能已优化至极致)

优化了传统的拼音转换处理类的算法,专门针对UTF-8字符集进行处理。 如果你使用GBK或GB2312字符集,只需要去掉iconv函数,直接赋值,不需要转换就行。...
  • hzbigdog
  • hzbigdog
  • 2014年07月15日 15:38
  • 23327

Android中汉字转换成拼音报错的处理解决.....

汉字转拼音android实现(HanziToPinyin类)分类: Android 自动化 2011-08-30 19:55 10149人阅读 评论(19) 收藏 举报androidcharacter...

Java 汉字转拼音的具体实现及汉字声调处理

之前在技术群里有群友问,java可以输出汉子的拼音么,可以

java的拼音处理

拼音在汉字搜索中还是比较常用的,java处理拼音也有好多方法。本文使用的是pinyin4j的jar包处理拼音。 /** * 获取拼音 * @param src * @retur...

使用Microsoft Visual Studio International Pack获得中文字符串的所有拼音组合(处理多音字)

最近一个项目中客户需要做人名的拼音检索,就像QQ好友那样,输入拼音就提示符合的联系人。上网找了一下,发现微软已经发布了相关的支持库,不仅可以处理拼音,还能处理笔画、简繁体转换等。csdn上有一篇博客介...
  • coollzt
  • coollzt
  • 2012年02月09日 17:24
  • 621

java 汉字拼音处理类

import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCase...

Android 拼音转汉字的第三方处理

一、前言 在我们的开发中,有时会有这样的需求,就是联系人列表按照拼音顺序排列(如通讯录)。于是,我也在网上搜到了许多这类的文章,就两种最常见的做法在此进行简单的比较和分析 二、汉字转拼音的方法 使用第...
  • wanniu
  • wanniu
  • 2017年03月23日 10:54
  • 390

PHP的UTF-8中文转拼音处理类

汉字拼音处理类

///     /// 汉字转拼音工具。     ///     public sealed class CHS2PinYin     {         ///         /...

拼音处理

拼音处理  /*-1.-获得汉字字符串的首字母拼音处拼音处理 理     根据大力的贴子改成.将大力的两个函数合并成了一个函数.    可以应用于助记码的查询 --转载(最早见于j99...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:拼音处理
举报原因:
原因补充:

(最多只允许输入30个字)