urldecode значений в таблице базы данных - mysql - PullRequest
0 голосов
/ 25 марта 2020

Я написал сканер, который собирает данные и сохраняет их в базе данных.

У меня есть все данные в mysql, но я вижу в нем некоторые закодированные значения.

I могу написать запрос на обновление и исправить данные, если есть какая-либо функция, которая его декодирует, ИЛИ при сохранении данных я могу urldecode значение (которое, очевидно, не работает, используя его как $name = urldecode($name)).

enter image description here

Использовал эту процедуру, но не может получить правильные значения.

CREATE FUNCTION URL_DECODE (str text) 
RETURNS text
DETERMINISTIC
BEGIN 
    DECLARE result text;
    DECLARE ind INT DEFAULT 0;

    SET result = REPLACE(str, '+', ' ');

    WHILE ind <= 255 DO
       SET result = REPLACE(result, CONCAT('%', LPAD(LOWER(HEX(ind)), 2, 0)), CHAR(ind));
       SET result = REPLACE(result, CONCAT('%', LPAD(HEX(ind), 2, 0)), CHAR(ind));
       SET ind = ind + 1;
    END WHILE;

    RETURN result;
END$$

DELIMITER ;
...