/*--全角/半角转换

原创 2007年09月19日 14:05:00

/*--全角/半角转换  
   
  转换说明  
  全角字符从的unicode编码从65281~65374  
  半角字符从的unicode编码从       33~126  
  空格比较特殊,全角为   12288,半角为   32  
  而且除空格外,全角/半角按unicode编码排序在顺序上是对应的  
  所以可以直接通过用+-法来处理非空格数据,对空格单独处理  
  like的时候,指定排序规则   COLLATE   Latin1_General_BIN  
  是保证字符顺序按unicode编码排序  
  (此函数部分思路参考了CSDN上大力的转换函数)  
  --邹建   2005.01(引用请保留此信息)--*/  
   
  /*--调用示例  
   
  declare   @s1   varchar(8000)  
  select   @s1='中    2-3456a78STUVabn中国opwxyz'  
  select   dbo.f_convert(@s1,0),dbo.f_convert(@s1,1)  
  --*/  
  CREATE   FUNCTION   f_Convert(  
  @str   NVARCHAR(4000),   --要转换的字符串  
  @flag   bit                         --转换标志,0转换成半角,1转换成全角  
  )RETURNS   nvarchar(4000)  
  AS  
  BEGIN  
  DECLARE   @pat   nvarchar(8),@step   int,@i   int,@spc   int  
  IF   @flag=0  
  SELECT   @pat=N'%[!-~]%',@step=-65248,  
  @str=REPLACE(@str,N' ',N'   ')  
  ELSE  
  SELECT   @pat=N'%[!-~]%',@step=65248,  
  @str=REPLACE(@str,N'   ',N' ')  
  SET   @i=PATINDEX(@pat   COLLATE   LATIN1_GENERAL_BIN,@str)  
  WHILE   @i>0  
  SELECT   @str=REPLACE(@str,  
  SUBSTRING(@str,@i,1),  
  NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))  
  ,@i=PATINDEX(@pat   COLLATE   LATIN1_GENERAL_BIN,@str)  
  RETURN(@str)  
  END  
  GO  

相关文章推荐

半角全角批量转换工具

  • 2014年06月19日 14:07
  • 11KB
  • 下载

C#实现字符串全角半角转换类

  • 2008年06月18日 09:27
  • 2KB
  • 下载

MySQL 全角转换为半角

​序言:       用户注册时候,录入了全角手机号码,所以导致短信系统根据手机字段发送短信失败,现在问题来了,如何把全角手机号码变成半角手机号码?1,手机号码全角转换成半角先查询出来全角半角都存在的...
  • mchdba
  • mchdba
  • 2014年11月01日 22:00
  • 4218

JAVA全角和半角的转换代码

  • 2009年02月02日 17:32
  • 55KB
  • 下载

如何理解python3的unicode,以及全角半角转换

关于unicode最易懂的解释(没有之一),建议耐心看完: 学点编码知识又不会死:Unicode的流言终结者和编码大揭秘 http://www.freebuf.com/articles/other...
  • zinnc
  • zinnc
  • 2017年03月30日 21:56
  • 1433

全角半角转换工具(绿色)

  • 2010年09月14日 10:12
  • 44KB
  • 下载

java全角半角转换程序

  • 2010年12月10日 01:03
  • 3KB
  • 下载

SQL Server中全角半角的转换

/************************************************************** * 转换原理: * 全角字符unicode编码从6...

javascript全角转换半角

  • 2011年11月24日 10:22
  • 539B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:/*--全角/半角转换
举报原因:
原因补充:

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