zoukankan      html  css  js  c++  java
  • Sqlserver UrlEncode

    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
    
  • 相关阅读:
    软件开发过程中应当遵守的原则
    企业架构是什么?
    软件工程的精髓
    PHP获取自然周列表,周开始结束日期,月开始结束时间方法类
    JS替换textarea里的回车换行
    PHP连接PGSQL
    PT与PX的区别
    JQuery 翻页小记
    PHP中替换textarea时的回车换行
    HTML5 CanvasOreilly.Canvas.Pocket.Reference (4)
  • 原文地址:https://www.cnblogs.com/LittleFeiHu/p/9552673.html
Copyright © 2011-2022 走看看