if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ToGB]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[ToGB]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
--作者:yuhtc@126.com
CREATE function dbo.ToGB(@s varchar(8000))
returns varchar(8000)
as
begin
declare @tmpstr varchar(10)
declare @tmpstr2 varchar(10)
declare @n bigint
declare @re varchar(10)
while charindex('%u',@s)<>0
begin
set @tmpstr=substring(@s,charindex('%u',@s)+2,4)
set @tmpstr2=@tmpstr
set @n=dbo.hex_dec(@tmpstr)
set @re=replace(@s,'%u'+@tmpstr2,nchar(@n))
set @s=replace(@s,'%u'+@tmpstr2,nchar(@n))
end
while charindex('%',@s)<>0
begin
set @tmpstr=substring(@s,charindex('%',@s)+1,2)
set @tmpstr2=@tmpstr
set @n=dbo.hex_dec(@tmpstr)
set @re=replace(@s,'%'+@tmpstr2,char(@n))
if(@n=37)
set @n=63
set @s=replace(@s,'%'+@tmpstr2,char(@n))
end
return @re
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
- 1
- 2
前往页