Voilà une petite fonction de décodage, pour un texte encodé par rawurlencode de PHP par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
CREATE FUNCTION url_decode( texte TEXT ) RETURNS TEXT
BEGIN
 
  SET @i = 1;
  SET @new_texte = texte;
 
  REPEAT
    BEGIN
 
      SET @sub = SUBSTRING( @new_texte, @i, 3 );
 
      IF LENGTH( @sub ) > 2 THEN
        BEGIN
 
          IF @sub REGEXP '^%[A-Fa-f0-9]{2}$' THEN
            BEGIN
 
              SET @char_convert = CHAR( CONV( SUBSTRING( @sub, 2 ), 16, 10 ) );
 
              SET @texte_deb    = SUBSTRING( @new_texte, 1, @i - 1 );
              SET @texte_fin    = SUBSTRING( @new_texte, @i + 3 );
 
              SET @new_texte    = CONCAT( @texte_deb, @char_convert, @texte_fin );
 
            END;
          END IF;
 
        END;
      END IF;
 
      SET @i = @i + 1;
 
    END;
  UNTIL LENGTH( @sub ) <= 2 END REPEAT;
 
  RETURN @new_texte;
 
END
Appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT url_decode( 'http%3A%2F%2Fwww.google.fr%2Fsearch%3Fsource%3Dig%26q%3Ddu%2Btexte' )
Résultat :