i was wondering if there is a MYSQL function to decode text with html entities. I have seen some approaches using REPLACE but it looks kinda hard to manage all the entities.
i was wondering if there is a MYSQL function to decode text with html entities. I have seen some approaches using REPLACE but it looks kinda hard to manage all the entities.
I have created this function:
DELIMITER $$
DROP FUNCTION IF EXISTS DecodeHTML$$
CREATE FUNCTION DecodeHTML(X VARCHAR(255)) RETURNS VARCHAR(255) CHARSET utf8 DETERMINISTIC
BEGIN
DECLARE TextString VARCHAR(255);
DECLARE word VARCHAR(255);
SET TextString = X;
SET word = 'á';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'á');
END IF;
SET word = 'é';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'é') ;
END IF;
SET word = 'í';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'í') ;
END IF;
SET word = 'ó';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'ó') ;
END IF;
SET word = 'ú';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'ú') ;
END IF;
SET word = 'Á';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Á') ;
END IF;
SET word = 'É';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'É') ;
END IF;
SET word = 'Í';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Í') ;
END IF;
SET word = 'Ó';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ó') ;
END IF;
SET word = 'Ú';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ú') ;
END IF;
SET word = 'À';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'À');
END IF;
SET word = 'Â';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Â');
END IF;
SET word = 'Ä';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ä');
END IF;
SET word = 'Æ';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Æ');
END IF;
SET word = 'È';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'È');
END IF;
SET word = 'Ê';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ê');
END IF;
SET word = 'Ì';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ì');
END IF;
SET word = 'Ð';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ð');
END IF;
SET word = 'Ò';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ò');
END IF;
SET word = 'Ù';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ù');
END IF;
SET word = 'Ô';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ô');
END IF;
SET word = 'Ö';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ö');
END IF;
SET word = 'Ø';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ø');
END IF;
SET word = 'Ü';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ü');
END IF;
SET word = 'ü';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'ü');
END IF;
SET word = 'ÿ';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'ÿ');
END IF;
SET word = 'ý';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'ý');
END IF;
SET word = 'õ';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'õ');
END IF;
SET word = 'ï';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'ï');
END IF;
SET word = 'ç';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'ç');
END IF;
SET word = 'ë';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'ë');
END IF;
SET word = 'Î';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Î');
END IF;
SET word = '€';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'€') ;
END IF;
SET word = 'ñ';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'ñ') ;
END IF;
SET word = 'Ñ';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'Ñ') ;
END IF;
SET word = '£';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'£') ;
END IF;
SET word = '©';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'©') ;
END IF;
SET word = '®';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'®');
END IF;
SET word = ' ';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,' ');
END IF;
SET word = '¤';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'¤');
END IF;
SET word = '¦';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'¦');
END IF;
SET word = '¶';
IF INSTR( X , word ) THEN
SET TextString = REPLACE(TextString, word,'¶');
END IF;
RETURN TextString;
END$$
DELIMITER ;