当前位置: 移动技术网 > IT编程>数据库>MSSQL > Sqlserver UrlEncode

Sqlserver UrlEncode

2018年08月29日  | 移动技术网IT编程  | 我要评论

金子绫乃,浙江12岁女孩遇害,河南人事网站

sqlserver  urlencode

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[urlencode]') and xtype in (n'fn', n'if', n'tf'))
-- 删除函数
drop function [dbo].[urlencode]
go
create function dbo.urlencode(@url varchar(3072))
returns varchar(3072)
as
begin 
 declare @count int,
@char varchar(2),
@i int,
@bytes binary(2),
@low8 int,
@high8 int

declare @urlencode varchar(3000) ;
set @count = len(@url)
set @i = 1
set @urlencode = ''
while (@i <= @count)
begin
 set @char = substring(@url,@i,1)
 if @char like '[-a-za-z0-9()''*._!]' and datalength(@char) = 1
  set @urlencode = @urlencode + @char
 else
 begin
  if datalength(@char) = 1
  begin
   set @urlencode = @urlencode + '%' + substring('0123456789abcdef',(ascii(@char) / 16 + 1),1)
   set @urlencode = @urlencode + substring('0123456789abcdef',(ascii(@char) % 16 + 1),1)
  end
  else
  begin
   set @bytes = convert(binary,@char)
   set @high8 = (0xff00 & cast(@bytes as int))/256
   set @low8 = 0x00ff & cast(@bytes as int)
   set @urlencode = @urlencode + '%' + substring('0123456789abcdef',(@high8 / 16 + 1),1)
   set @urlencode = @urlencode + substring('0123456789abcdef',(@high8 % 16 + 1),1)
   set @urlencode = @urlencode + '%' + substring('0123456789abcdef',(@low8 / 16 + 1),1)
   set @urlencode = @urlencode + substring('0123456789abcdef',(@low8 % 16 + 1),1)
  end
 end
 set @i = @i + 1
 
end
    return @urlencode;
end

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网