CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

如何将全角字符转化为半角字符?

楼主ncowboy(可以很色,但是绝不可以猥琐)2005-04-19 10:41:04 在 MS-SQL Server / 基础类 提问

如何将全角字符转化为半角字符?  
   
  谢谢了。 问题点数:20、回复次数:8Top

1 楼zjcxc(邹建)回复于 2005-04-19 11:14:55 得分 20

if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[f_convert]')   and   xtype   in   (N'FN',   N'IF',   N'TF'))  
  drop   function   [dbo].[f_convert]  
  GO  
   
  /*--全角/半角转换  
   
  转换说明  
  全角字符从的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  
   
  Top

2 楼friendliu(无为)回复于 2005-04-19 11:34:56 得分 0

学习,收藏Top

3 楼netmin(网min)回复于 2005-04-19 11:43:46 得分 0

收藏Top

4 楼smartmarkey()回复于 2005-04-19 12:37:23 得分 0

好答复!赶紧收藏!Top

5 楼cemma(佩)回复于 2005-04-19 13:55:49 得分 0

markTop

6 楼Hopewell_Go(好的在后頭﹗希望更好﹗﹗)回复于 2005-04-19 15:32:18 得分 0

學習并收藏  
  好東西啊Top

7 楼zlj113(·米老鼠· 学习)回复于 2005-04-19 15:40:28 得分 0

收藏Top

8 楼ncowboy(可以很色,但是绝不可以猥琐)回复于 2005-04-19 17:23:57 得分 0

谢谢。但是,csdn好像现在无法接贴。Top

相关问题

  • 怎样将文章中的半角字符转化为全角字符
  • 半角字符变全角字符~~~~~~(所有的分)
  • 全角字符,半角字符 匹配查找问题
  • 全角字符和半角字符装换
  • 帮帮忙,半角字符(英文或数字)转成全角字符
  • 全角字符,半角字符 匹配查找问题 解决再给200
  • 全角字符,半角字符 匹配查找问题 bzszp (20) lai
  • 将一个文件中所有全角字符转为半角字符
  • 怎么把全角字符转换成半角,比如把1,-转换成1,-
  • 寻求:用正则表达匹配并替换输入字符串中的全角字符为半角字符?

关键词

  • 字符
  • 转换
  • 编码
  • unicode
  • 半角
  • 全角字符
  • pat
  • 空格
  • dbo
  • collate latin

得分解答快速导航

  • 帖主:ncowboy
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo