--(此函式部分思路參考了csdn上大力的轉換函式)
--鄒建2005.01(引用請保留此資訊)--*/
go--
建立函式
create
function
sbc2dbc
(
@str
nvarchar(4000), --
要轉換的字串
@flag
bit--
轉換標誌,0轉換成半形,1轉換成全角
)returns
nvarchar(4000
) as
begin
declare
@pat
nvarchar(8),@step
int,@i
int,@spc
intif
@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>
0select
@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
--測試示例
select dbo.sbc2dbc('
~~~~ca!b
',1) --
執行結果
/*~~~~ca!b
*/--
附半形全形表
/*ascii 全形字符 unicode 半形字元 unicode
0x20 " "空格u+3000 " "空格u+0020
0x21 !u+ff01 ! u+0021
0x22 "u+ff02 " u+0022
0x23 #u+ff03 # u+0023
0x24 $u+ff04 $ u+0024
0x25 %u+ff05 % u+0025
0x26 &u+ff06 & u+0026
0x27 'u+ff07 ' u+0027
0x28 (u+ff08 ( u+0028
0x29 )u+ff09 ) u+0029
0x2a *u+ff0a * u+002a
0x2b +u+ff0b + u+002b
0x2c ,u+ff0c , u+002c
0x2d -u+ff0d - u+002d
0x2e .u+ff0e . u+002e
0x2f /u+ff0f / u+002f
0x30 0u+ff10 0 u+0030
0x31 1u+ff11 1 u+0031
0x32 2u+ff12 2 u+0032
0x33 3u+ff13 3 u+0033
0x34 4u+ff14 4 u+0034
0x35 5u+ff15 5 u+0035
0x36 6u+ff16 6 u+0036
0x37 7u+ff17 7 u+0037
0x38 8u+ff18 8 u+0038
0x39 9u+ff19 9 u+0039
0x3a :u+ff1a : u+003a
0x3b ;u+ff1b ; u+003b
0x3c <u+ff1c < u+003c
0x3d =u+ff1d = u+003d
0x3e >u+ff1e > u+003e
0x3f ?u+ff1f ? u+003f
0x40 @u+ff20 @ u+0040
0x41 au+ff21 a u+0041
0x42 bu+ff22 b u+0042
0x43 cu+ff23 c u+0043
0x44 du+ff24 d u+0044
0x45 eu+ff25 e u+0045
0x46 fu+ff26 f u+0046
0x47 gu+ff27 g u+0047
0x48 hu+ff28 h u+0048
0x49 iu+ff29 i u+0049
0x4a ju+ff2a j u+004a
0x4b ku+ff2b k u+004b
0x4c lu+ff2c l u+004c
0x4d mu+ff2d m u+004d
0x4e nu+ff2e n u+004e
0x4f ou+ff2f o u+004f
0x50 pu+ff30 p u+0050
0x51 qu+ff31 q u+0051
0x52 ru+ff32 r u+0052
0x53 su+ff33 s u+0053
0x54 tu+ff34 t u+0054
0x55 uu+ff35 u u+0055
0x56 vu+ff36 v u+0056
0x57 wu+ff37 w u+0057
0x58 xu+ff38 x u+0058
0x59 yu+ff39 y u+0059
0x5a zu+ff3a z u+005a
0x5b [u+ff3b [ u+005b
0x5c \u+ff3c / u+005c
0x5d ]u+ff3d ] u+005d
0x5e ^u+ff3e ^ u+005e
0x5f _u+ff3f _ u+005f
0x60 `u+ff40 ` u+0060
0x61 au+ff41 a u+0061
0x62 bu+ff42 b u+0062
0x63 cu+ff43 c u+0063
0x64 du+ff44 d u+0064
0x65 eu+ff45 e u+0065
0x66 fu+ff46 f u+0066
0x67 gu+ff47 g u+0067
0x68 hu+ff48 h u+0068
0x69 iu+ff49 i u+0069
0x6a ju+ff4a j u+006a
0x6b ku+ff4b k u+006b
0x6c lu+ff4c l u+006c
0x6d mu+ff4d m u+006d
0x6e nu+ff4e n u+006e
0x6f ou+ff4f o u+006f
0x70 pu+ff50 p u+0070
0x71 qu+ff51 q u+0071
0x72 ru+ff52 r u+0072
0x73 su+ff53 s u+0073
0x74 tu+ff54 t u+0074
0x75 uu+ff55 u u+0075
0x76 vu+ff56 v u+0076
0x77 wu+ff57 w u+0077
0x78 xu+ff58 x u+0078
0x79 yu+ff59 y u+0079
0x7a zu+ff5a z u+007a
0x7b {u+ff5b u+007d
0x7e ~u+ff5e ~ u+007e
*/
全形半形轉換函式
轉全形的函式 sbc case 任意字串 全形字串 全形空格為12288,半形空格為32 其他字元半形 33 126 與全形 65281 65374 的對應關係是 均相差65248 public string tosbc string input if c i 127 c i char c i 65...
全形半形轉換函式
轉全形的函式 sbc case 任意字串 全形字串 全形空格為12288,半形空格為32 其他字元半形 33 126 與全形 65281 65374 的對應關係是 均相差65248 public string tosbc string input if c i 127 c i char c i 65...
全形半形轉換函式
1.轉全形的函式 sbc case 任意字串 全形字串 全形空格為12288,半形空格為32 其他字元半形 33 126 與全形 65281 65374 的對應關係是 均相差65248 public string tosbc string input if c i 127 c i char c i ...