Created
May 7, 2013 22:03
-
-
Save ejhayes/5536531 to your computer and use it in GitHub Desktop.
html_decode function. From: http://forums.mysql.com/read.php?98,246527
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mysql> select html_decode('This & that!'); | |
+---------------------------------+ | |
| html_decode('This & that!') | | |
+---------------------------------+ | |
| This & that! | | |
+---------------------------------+ | |
1 row in set (0.00 sec) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DELIMITER $$ | |
CREATE FUNCTION `html_decode`(x text) RETURNS text | |
BEGIN | |
DECLARE TextString VARCHAR(255) ; | |
SET TextString = x ; | |
#quotation mark | |
IF INSTR( x , '"' ) | |
THEN SET TextString = REPLACE(TextString, '"','"') ; | |
END IF ; | |
#apostrophe | |
IF INSTR( x , ''' ) | |
THEN SET TextString = REPLACE(TextString, ''','"') ; | |
END IF ; | |
#ampersand | |
IF INSTR( x , '&' ) | |
THEN SET TextString = REPLACE(TextString, '&','&') ; | |
END IF ; | |
#less-than | |
IF INSTR( x , '<' ) | |
THEN SET TextString = REPLACE(TextString, '<','<') ; | |
END IF ; | |
#greater-than | |
IF INSTR( x , '>' ) | |
THEN SET TextString = REPLACE(TextString, '>','>') ; | |
END IF ; | |
#non-breaking space | |
IF INSTR( x , ' ' ) | |
THEN SET TextString = REPLACE(TextString, ' ',' ') ; | |
END IF ; | |
#inverted exclamation mark | |
IF INSTR( x , '¡' ) | |
THEN SET TextString = REPLACE(TextString, '¡','¡') ; | |
END IF ; | |
#cent | |
IF INSTR( x , '¢' ) | |
THEN SET TextString = REPLACE(TextString, '¢','¢') ; | |
END IF ; | |
#pound | |
IF INSTR( x , '£' ) | |
THEN SET TextString = REPLACE(TextString, '£','£') ; | |
END IF ; | |
#currency | |
IF INSTR( x , '¤' ) | |
THEN SET TextString = REPLACE(TextString, '¤','¤') ; | |
END IF ; | |
#yen | |
IF INSTR( x , '¥' ) | |
THEN SET TextString = REPLACE(TextString, '¥','¥') ; | |
END IF ; | |
#broken vertical bar | |
IF INSTR( x , '¦' ) | |
THEN SET TextString = REPLACE(TextString, '¦','¦') ; | |
END IF ; | |
#section | |
IF INSTR( x , '§' ) | |
THEN SET TextString = REPLACE(TextString, '§','§') ; | |
END IF ; | |
#spacing diaeresis | |
IF INSTR( x , '¨' ) | |
THEN SET TextString = REPLACE(TextString, '¨','¨') ; | |
END IF ; | |
#copyright | |
IF INSTR( x , '©' ) | |
THEN SET TextString = REPLACE(TextString, '©','©') ; | |
END IF ; | |
#feminine ordinal indicator | |
IF INSTR( x , 'ª' ) | |
THEN SET TextString = REPLACE(TextString, 'ª','ª') ; | |
END IF ; | |
#angle quotation mark (left) | |
IF INSTR( x , '«' ) | |
THEN SET TextString = REPLACE(TextString, '«','«') ; | |
END IF ; | |
#negation | |
IF INSTR( x , '¬' ) | |
THEN SET TextString = REPLACE(TextString, '¬','¬') ; | |
END IF ; | |
#soft hyphen | |
IF INSTR( x , '­' ) | |
THEN SET TextString = REPLACE(TextString, '­','') ; | |
END IF ; | |
#registered trademark | |
IF INSTR( x , '®' ) | |
THEN SET TextString = REPLACE(TextString, '®','®') ; | |
END IF ; | |
#spacing macron | |
IF INSTR( x , '¯' ) | |
THEN SET TextString = REPLACE(TextString, '¯','¯') ; | |
END IF ; | |
#degree | |
IF INSTR( x , '°' ) | |
THEN SET TextString = REPLACE(TextString, '°','°') ; | |
END IF ; | |
#plus-or-minus | |
IF INSTR( x , '±' ) | |
THEN SET TextString = REPLACE(TextString, '±','±') ; | |
END IF ; | |
#superscript 2 | |
IF INSTR( x , '²' ) | |
THEN SET TextString = REPLACE(TextString, '²','²') ; | |
END IF ; | |
#superscript 3 | |
IF INSTR( x , '³' ) | |
THEN SET TextString = REPLACE(TextString, '³','³') ; | |
END IF ; | |
#spacing acute | |
IF INSTR( x , '´' ) | |
THEN SET TextString = REPLACE(TextString, '´','´') ; | |
END IF ; | |
#micro | |
IF INSTR( x , 'µ' ) | |
THEN SET TextString = REPLACE(TextString, 'µ','µ') ; | |
END IF ; | |
#paragraph | |
IF INSTR( x , '¶' ) | |
THEN SET TextString = REPLACE(TextString, '¶','¶') ; | |
END IF ; | |
#middle dot | |
IF INSTR( x , '·' ) | |
THEN SET TextString = REPLACE(TextString, '·','·') ; | |
END IF ; | |
#spacing cedilla | |
IF INSTR( x , '¸' ) | |
THEN SET TextString = REPLACE(TextString, '¸','¸') ; | |
END IF ; | |
#superscript 1 | |
IF INSTR( x , '¹' ) | |
THEN SET TextString = REPLACE(TextString, '¹','¹') ; | |
END IF ; | |
#masculine ordinal indicator | |
IF INSTR( x , 'º' ) | |
THEN SET TextString = REPLACE(TextString, 'º','º') ; | |
END IF ; | |
#angle quotation mark (right) | |
IF INSTR( x , '»' ) | |
THEN SET TextString = REPLACE(TextString, '»','»') ; | |
END IF ; | |
#fraction 1/4 | |
IF INSTR( x , '¼' ) | |
THEN SET TextString = REPLACE(TextString, '¼','¼') ; | |
END IF ; | |
#fraction 1/2 | |
IF INSTR( x , '½' ) | |
THEN SET TextString = REPLACE(TextString, '½','½') ; | |
END IF ; | |
#fraction 3/4 | |
IF INSTR( x , '¾' ) | |
THEN SET TextString = REPLACE(TextString, '¾','¾') ; | |
END IF ; | |
#inverted question mark | |
IF INSTR( x , '¿' ) | |
THEN SET TextString = REPLACE(TextString, '¿','¿') ; | |
END IF ; | |
#multiplication | |
IF INSTR( x , '×' ) | |
THEN SET TextString = REPLACE(TextString, '×','×') ; | |
END IF ; | |
#division | |
IF INSTR( x , '÷' ) | |
THEN SET TextString = REPLACE(TextString, '÷','÷') ; | |
END IF ; | |
#capital a, grave accent | |
IF INSTR( x , 'À' ) | |
THEN SET TextString = REPLACE(TextString, 'À','À') ; | |
END IF ; | |
#capital a, acute accent | |
IF INSTR( x , 'Á' ) | |
THEN SET TextString = REPLACE(TextString, 'Á','Á') ; | |
END IF ; | |
#capital a, circumflex accent | |
IF INSTR( x , 'Â' ) | |
THEN SET TextString = REPLACE(TextString, 'Â','Â') ; | |
END IF ; | |
#capital a, tilde | |
IF INSTR( x , 'Ã' ) | |
THEN SET TextString = REPLACE(TextString, 'Ã','Ã') ; | |
END IF ; | |
#capital a, umlaut mark | |
IF INSTR( x , 'Ä' ) | |
THEN SET TextString = REPLACE(TextString, 'Ä','Ä') ; | |
END IF ; | |
#capital a, ring | |
IF INSTR( x , 'Å' ) | |
THEN SET TextString = REPLACE(TextString, 'Å','Å') ; | |
END IF ; | |
#capital ae | |
IF INSTR( x , 'Æ' ) | |
THEN SET TextString = REPLACE(TextString, 'Æ','Æ') ; | |
END IF ; | |
#capital c, cedilla | |
IF INSTR( x , 'Ç' ) | |
THEN SET TextString = REPLACE(TextString, 'Ç','Ç') ; | |
END IF ; | |
#capital e, grave accent | |
IF INSTR( x , 'È' ) | |
THEN SET TextString = REPLACE(TextString, 'È','È') ; | |
END IF ; | |
#capital e, acute accent | |
IF INSTR( x , 'É' ) | |
THEN SET TextString = REPLACE(TextString, 'É','É') ; | |
END IF ; | |
#capital e, circumflex accent | |
IF INSTR( x , 'Ê' ) | |
THEN SET TextString = REPLACE(TextString, 'Ê','Ê') ; | |
END IF ; | |
#capital e, umlaut mark | |
IF INSTR( x , 'Ë' ) | |
THEN SET TextString = REPLACE(TextString, 'Ë','Ë') ; | |
END IF ; | |
#capital i, grave accent | |
IF INSTR( x , 'Ì' ) | |
THEN SET TextString = REPLACE(TextString, 'Ì','Ì') ; | |
END IF ; | |
#capital i, acute accent | |
IF INSTR( x , 'Í' ) | |
THEN SET TextString = REPLACE(TextString, 'Í','Í') ; | |
END IF ; | |
#capital i, circumflex accent | |
IF INSTR( x , 'Î' ) | |
THEN SET TextString = REPLACE(TextString, 'Î','Î') ; | |
END IF ; | |
#capital i, umlaut mark | |
IF INSTR( x , 'Ï' ) | |
THEN SET TextString = REPLACE(TextString, 'Ï','Ï') ; | |
END IF ; | |
#capital eth, Icelandic | |
IF INSTR( x , 'Ð' ) | |
THEN SET TextString = REPLACE(TextString, 'Ð','Ð') ; | |
END IF ; | |
#capital n, tilde | |
IF INSTR( x , 'Ñ' ) | |
THEN SET TextString = REPLACE(TextString, 'Ñ','Ñ') ; | |
END IF ; | |
#capital o, grave accent | |
IF INSTR( x , 'Ò' ) | |
THEN SET TextString = REPLACE(TextString, 'Ò','Ò') ; | |
END IF ; | |
#capital o, acute accent | |
IF INSTR( x , 'Ó' ) | |
THEN SET TextString = REPLACE(TextString, 'Ó','Ó') ; | |
END IF ; | |
#capital o, circumflex accent | |
IF INSTR( x , 'Ô' ) | |
THEN SET TextString = REPLACE(TextString, 'Ô','Ô') ; | |
END IF ; | |
#capital o, tilde | |
IF INSTR( x , 'Õ' ) | |
THEN SET TextString = REPLACE(TextString, 'Õ','Õ') ; | |
END IF ; | |
#capital o, umlaut mark | |
IF INSTR( x , 'Ö' ) | |
THEN SET TextString = REPLACE(TextString, 'Ö','Ö') ; | |
END IF ; | |
#capital o, slash | |
IF INSTR( x , 'Ø' ) | |
THEN SET TextString = REPLACE(TextString, 'Ø','Ø') ; | |
END IF ; | |
#capital u, grave accent | |
IF INSTR( x , 'Ù' ) | |
THEN SET TextString = REPLACE(TextString, 'Ù','Ù') ; | |
END IF ; | |
#capital u, acute accent | |
IF INSTR( x , 'Ú' ) | |
THEN SET TextString = REPLACE(TextString, 'Ú','Ú') ; | |
END IF ; | |
#capital u, circumflex accent | |
IF INSTR( x , 'Û' ) | |
THEN SET TextString = REPLACE(TextString, 'Û','Û') ; | |
END IF ; | |
#capital u, umlaut mark | |
IF INSTR( x , 'Ü' ) | |
THEN SET TextString = REPLACE(TextString, 'Ü','Ü') ; | |
END IF ; | |
#capital y, acute accent | |
IF INSTR( x , 'Ý' ) | |
THEN SET TextString = REPLACE(TextString, 'Ý','Ý') ; | |
END IF ; | |
#capital THORN, Icelandic | |
IF INSTR( x , 'Þ' ) | |
THEN SET TextString = REPLACE(TextString, 'Þ','Þ') ; | |
END IF ; | |
#small sharp s, German | |
IF INSTR( x , 'ß' ) | |
THEN SET TextString = REPLACE(TextString, 'ß','ß') ; | |
END IF ; | |
#small a, grave accent | |
IF INSTR( x , 'à' ) | |
THEN SET TextString = REPLACE(TextString, 'à','à') ; | |
END IF ; | |
#small a, acute accent | |
IF INSTR( x , 'á' ) | |
THEN SET TextString = REPLACE(TextString, 'á','á') ; | |
END IF ; | |
#small a, circumflex accent | |
IF INSTR( x , 'â' ) | |
THEN SET TextString = REPLACE(TextString, 'â','â') ; | |
END IF ; | |
#small a, tilde | |
IF INSTR( x , 'ã' ) | |
THEN SET TextString = REPLACE(TextString, 'ã','ã') ; | |
END IF ; | |
#small a, umlaut mark | |
IF INSTR( x , 'ä' ) | |
THEN SET TextString = REPLACE(TextString, 'ä','ä') ; | |
END IF ; | |
#small a, ring | |
IF INSTR( x , 'å' ) | |
THEN SET TextString = REPLACE(TextString, 'å','å') ; | |
END IF ; | |
#small ae | |
IF INSTR( x , 'æ' ) | |
THEN SET TextString = REPLACE(TextString, 'æ','æ') ; | |
END IF ; | |
#small c, cedilla | |
IF INSTR( x , 'ç' ) | |
THEN SET TextString = REPLACE(TextString, 'ç','ç') ; | |
END IF ; | |
#small e, grave accent | |
IF INSTR( x , 'è' ) | |
THEN SET TextString = REPLACE(TextString, 'è','è') ; | |
END IF ; | |
#small e, acute accent | |
IF INSTR( x , 'é' ) | |
THEN SET TextString = REPLACE(TextString, 'é','é') ; | |
END IF ; | |
#small e, circumflex accent | |
IF INSTR( x , 'ê' ) | |
THEN SET TextString = REPLACE(TextString, 'ê','ê') ; | |
END IF ; | |
#small e, umlaut mark | |
IF INSTR( x , 'ë' ) | |
THEN SET TextString = REPLACE(TextString, 'ë','ë') ; | |
END IF ; | |
#small i, grave accent | |
IF INSTR( x , 'ì' ) | |
THEN SET TextString = REPLACE(TextString, 'ì','ì') ; | |
END IF ; | |
#small i, acute accent | |
IF INSTR( x , 'í' ) | |
THEN SET TextString = REPLACE(TextString, 'í','í') ; | |
END IF ; | |
#small i, circumflex accent | |
IF INSTR( x , 'î' ) | |
THEN SET TextString = REPLACE(TextString, 'î','î') ; | |
END IF ; | |
#small i, umlaut mark | |
IF INSTR( x , 'ï' ) | |
THEN SET TextString = REPLACE(TextString, 'ï','ï') ; | |
END IF ; | |
#small eth, Icelandic | |
IF INSTR( x , 'ð' ) | |
THEN SET TextString = REPLACE(TextString, 'ð','ð') ; | |
END IF ; | |
#small n, tilde | |
IF INSTR( x , 'ñ' ) | |
THEN SET TextString = REPLACE(TextString, 'ñ','ñ') ; | |
END IF ; | |
#small o, grave accent | |
IF INSTR( x , 'ò' ) | |
THEN SET TextString = REPLACE(TextString, 'ò','ò') ; | |
END IF ; | |
#small o, acute accent | |
IF INSTR( x , 'ó' ) | |
THEN SET TextString = REPLACE(TextString, 'ó','ó') ; | |
END IF ; | |
#small o, circumflex accent | |
IF INSTR( x , 'ô' ) | |
THEN SET TextString = REPLACE(TextString, 'ô','ô') ; | |
END IF ; | |
#small o, tilde | |
IF INSTR( x , 'õ' ) | |
THEN SET TextString = REPLACE(TextString, 'õ','õ') ; | |
END IF ; | |
#small o, umlaut mark | |
IF INSTR( x , 'ö' ) | |
THEN SET TextString = REPLACE(TextString, 'ö','ö') ; | |
END IF ; | |
#small o, slash | |
IF INSTR( x , 'ø' ) | |
THEN SET TextString = REPLACE(TextString, 'ø','ø') ; | |
END IF ; | |
#small u, grave accent | |
IF INSTR( x , 'ù' ) | |
THEN SET TextString = REPLACE(TextString, 'ù','ù') ; | |
END IF ; | |
#small u, acute accent | |
IF INSTR( x , 'ú' ) | |
THEN SET TextString = REPLACE(TextString, 'ú','ú') ; | |
END IF ; | |
#small u, circumflex accent | |
IF INSTR( x , 'û' ) | |
THEN SET TextString = REPLACE(TextString, 'û','û') ; | |
END IF ; | |
#small u, umlaut mark | |
IF INSTR( x , 'ü' ) | |
THEN SET TextString = REPLACE(TextString, 'ü','ü') ; | |
END IF ; | |
#small y, acute accent | |
IF INSTR( x , 'ý' ) | |
THEN SET TextString = REPLACE(TextString, 'ý','ý') ; | |
END IF ; | |
#small thorn, Icelandic | |
IF INSTR( x , 'þ' ) | |
THEN SET TextString = REPLACE(TextString, 'þ','þ') ; | |
END IF ; | |
#small y, umlaut mark | |
IF INSTR( x , 'ÿ' ) | |
THEN SET TextString = REPLACE(TextString, 'ÿ','ÿ') ; | |
END IF ; | |
RETURN TextString ; | |
END$$ | |
DELIMITER ; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment