• Modified function for languages using accented letters (french for example)

    CREATE FUNCTION dbo.URLEncode(

    @decodedString VARCHAR(4000)

    )

    RETURNS VARCHAR(4000)

    AS

    BEGIN

    DECLARE @encodedString VARCHAR(4000)

    IF @decodedString LIKE '%[^azertyuiopmlkjhgfdsqwxcvbnAZERTYUIOPMLKJHGFDSQWXCVBN0-9*-.!_]%' ESCAPE '!'

    BEGIN

    SELECT @encodedString = REPLACE(

    COALESCE(@encodedString, @decodedString),

    SUBSTRING(@decodedString,num,1),

    '%' + SUBSTRING(master.dbo.fn_varbintohexstr(CONVERT(VARBINARY(1),ASCII(SUBSTRING(@decodedString,num,1)))),3,3))

    FROM dbo.numbers

    WHERE num BETWEEN 1 AND LEN(@decodedString) AND SUBSTRING(@decodedString,num,1) like '[^azertyuiopmlkjhgfdsqwxcvbnAZERTYUIOPMLKJHGFDSQWXCVBN0-9*-.!_]' ESCAPE '!'

    END

    ELSE

    BEGIN

    SELECT @encodedString = @decodedString

    END

    RETURN @encodedString

    END