From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

/*###################################################################################
#
# Embperl - Copyright (c) 1997-2000 Gerald Richter / ECOS
#
# You may distribute under the terms of either the GNU General Public
# License or the Artistic License, as specified in the Perl README file.
# For use with Apache httpd and mod_perl, see also Apache copyright.
#
# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
###################################################################################*/
/* minimal input and output escaping. It's usefull for other charsets then
iso-8859-1 (iso-latin-1) and for two byte charset
This translation tables will leave any characters above 128 untouchted
*/
#include "ep.h"
/*
* Character Translation
*/
struct tCharTrans Char2Html [] =
{
{ ' ' , "" }, /* � Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /* 	 Horizontal tab */
{ ' ' , "" }, /* 
 Line feed */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /* 
 Carriage Return */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*  Unused */
{ ' ' , "" }, /*   Space */
{ '!' , "" }, /* ! Exclamation mark */
{ '"' , """ }, /* Quotation mark */
{ '#' , "" }, /* # Number sign */
{ '$' , "" }, /* $ Dollar sign */
{ '%' , "" }, /* % Percent sign */
{ '&' , "&" }, /* Ampersand */
{ '\'' , "" }, /* ' Apostrophe */
{ '(' , "" }, /* ( Left parenthesis */
{ ')' , "" }, /* ) Right parenthesis */
{ '*' , "" }, /* * Asterisk */
{ '+' , "" }, /* + Plus sign */
{ ',' , "" }, /* , Comma */
{ '-' , "" }, /* - Hyphen */
{ '.' , "" }, /* . Period (fullstop) */
{ '/' , "" }, /* / Solidus (slash) */
{ '0' , "" }, /* 0 Digit 0 */
{ '1' , "" }, /* 1 Digit 1 */
{ '2' , "" }, /* 2 Digit 2 */
{ '3' , "" }, /* 3 Digit 3 */
{ '4' , "" }, /* 4 Digit 4 */
{ '5' , "" }, /* 5 Digit 5 */
{ '6' , "" }, /* 6 Digit 6 */
{ '7' , "" }, /* 7 Digit 7 */
{ '8' , "" }, /* 8 Digit 8 */
{ '9' , "" }, /* 9 Digit 9 */
{ ':' , "" }, /* : Colon */
{ ';' , "" }, /* &#59; Semicolon */
{ '<' , "&lt;" }, /* Less than */
{ '=' , "" }, /* &#61; Equals sign */
{ '>' , "&gt;" }, /* Greater than */
{ '?' , "" }, /* &#63; Question mark */
{ '@' , "" }, /* &#64; Commercial at */
{ 'A' , "" }, /* &#65; Capital A */
{ 'B' , "" }, /* &#66; Capital B */
{ 'C' , "" }, /* &#67; Capital C */
{ 'D' , "" }, /* &#68; Capital D */
{ 'E' , "" }, /* &#69; Capital E */
{ 'F' , "" }, /* &#70; Capital F */
{ 'G' , "" }, /* &#71; Capital G */
{ 'H' , "" }, /* &#72; Capital H */
{ 'I' , "" }, /* &#73; Capital I */
{ 'J' , "" }, /* &#74; Capital J */
{ 'K' , "" }, /* &#75; Capital K */
{ 'L' , "" }, /* &#76; Capital L */
{ 'M' , "" }, /* &#77; Capital M */
{ 'N' , "" }, /* &#78; Capital N */
{ 'O' , "" }, /* &#79; Capital O */
{ 'P' , "" }, /* &#80; Capital P */
{ 'Q' , "" }, /* &#81; Capital Q */
{ 'R' , "" }, /* &#82; Capital R */
{ 'S' , "" }, /* &#83; Capital S */
{ 'T' , "" }, /* &#84; Capital T */
{ 'U' , "" }, /* &#85; Capital U */
{ 'V' , "" }, /* &#86; Capital V */
{ 'W' , "" }, /* &#87; Capital W */
{ 'X' , "" }, /* &#88; Capital X */
{ 'Y' , "" }, /* &#89; Capital Y */
{ 'Z' , "" }, /* &#90; Capital Z */
{ '[' , "" }, /* &#91; Left square bracket */
{ '\\' , "" }, /* &#92; Reverse solidus (backslash) */
{ ']' , "" }, /* &#93; Right square bracket */
{ '^' , "" }, /* &#94; Caret */
{ '_' , "" }, /* &#95; Horizontal bar (underscore) */
{ '`' , "" }, /* &#96; Acute accent */
{ 'a' , "" }, /* &#97; Small a */
{ 'b' , "" }, /* &#98; Small b */
{ 'c' , "" }, /* &#99; Small c */
{ 'd' , "" }, /* &#100; Small d */
{ 'e' , "" }, /* &#101; Small e */
{ 'f' , "" }, /* &#102; Small f */
{ 'g' , "" }, /* &#103; Small g */
{ 'h' , "" }, /* &#104; Small h */
{ 'i' , "" }, /* &#105; Small i */
{ 'j' , "" }, /* &#106; Small j */
{ 'k' , "" }, /* &#107; Small k */
{ 'l' , "" }, /* &#108; Small l */
{ 'm' , "" }, /* &#109; Small m */
{ 'n' , "" }, /* &#110; Small n */
{ 'o' , "" }, /* &#111; Small o */
{ 'p' , "" }, /* &#112; Small p */
{ 'q' , "" }, /* &#113; Small q */
{ 'r' , "" }, /* &#114; Small r */
{ 's' , "" }, /* &#115; Small s */
{ 't' , "" }, /* &#116; Small t */
{ 'u' , "" }, /* &#117; Small u */
{ 'v' , "" }, /* &#118; Small v */
{ 'w' , "" }, /* &#119; Small w */
{ 'x' , "" }, /* &#120; Small x */
{ 'y' , "" }, /* &#121; Small y */
{ 'z' , "" }, /* &#122; Small z */
{ '{' , "" }, /* &#123; Left curly brace */
{ '|' , "" }, /* &#124; Vertical bar */
{ '}' , "" }, /* &#125; Right curly brace */
{ '~' , "" }, /* &#126; Tilde */
{ '' , "" }, /* &#127; Unused */
{ '€' , "" }, /* &#128; Unused */
{ ' ' , "" }, /* &#129; Unused */
{ ' ' , "" }, /* &#130; Unused */
{ ' ' , "" }, /* &#131; Unused */
{ ' ' , "" }, /* &#132; Unused */
{ ' ' , "" }, /* &#133; Unused */
{ ' ' , "" }, /* &#134; Unused */
{ ' ' , "" }, /* &#135; Unused */
{ ' ' , "" }, /* &#136; Unused */
{ ' ' , "" }, /* &#137; Unused */
{ ' ' , "" }, /* &#138; Horizontal tab */
{ ' ' , "" }, /* &#139; Line feed */
{ ' ' , "" }, /* &#140; Unused */
{ ' ' , "" }, /* &#141; Unused */
{ ' ' , "" }, /* &#142; Carriage Return */
{ ' ' , "" }, /* &#143; Unused */
{ ' ' , "" }, /* &#144; Unused */
{ ' ' , "" }, /* &#145; Unused */
{ ' ' , "" }, /* &#146; Unused */
{ ' ' , "" }, /* &#147; Unused */
{ ' ' , "" }, /* &#148; Unused */
{ ' ' , "" }, /* &#149; Unused */
{ ' ' , "" }, /* &#150; Unused */
{ ' ' , "" }, /* &#151; Unused */
{ ' ' , "" }, /* &#152; Unused */
{ ' ' , "" }, /* &#153; Unused */
{ ' ' , "" }, /* &#154; Unused */
{ ' ' , "" }, /* &#155; Unused */
{ ' ' , "" }, /* &#156; Unused */
{ ' ' , "" }, /* &#157; Unused */
{ ' ' , "" }, /* &#158; Unused */
{ ' ' , "" }, /* &#159; Unused */
{ ' ' , "" }, /* Non-breaking Space */
{ '¡' , "" }, /* Inverted exclamation */
{ '¢' , "" }, /* Cent sign */
{ '£' , "" }, /* Pound sterling */
{ '¤' , "" }, /* General currency sign */
{ '¥' , "" }, /* Yen sign */
/* { '¦' , "" }, / * Broken vertical bar */
{ '¦' , "" }, /* Broken vertical bar */
{ '§' , "" }, /* Section sign */
/* { '¨' , "" }, / * Diæresis / Umlaut */
{ '¨' , "" }, /* Diæresis / Umlaut */
{ '©' , "" }, /* Copyright */
{ 'ª' , "" }, /* Feminine ordinal */
{ '«' , "" }, /* Left angle quote, guillemot left */
{ '¬' , "" }, /* Not sign */
{ '­' , "" }, /* Soft hyphen */
{ '®' , "" }, /* Registered trademark */
/* { '¯' , "" }, / * Macron accent */
{ '¯' , "" }, /* Macron accent */
{ '°' , "" }, /* Degree sign */
{ '±' , "" }, /* Plus or minus */
{ '²' , "" }, /* Superscript two */
{ '³' , "" }, /* Superscript three */
{ '´' , "" }, /* Acute accent */
{ 'µ' , "" }, /* Micro sign */
{ '¶' , "" }, /* Paragraph sign */
{ '·' , "" }, /* Middle dot */
{ '¸' , "" }, /* Cedilla */
{ '¹' , "" }, /* Superscript one */
{ 'º' , "" }, /* Masculine ordinal */
{ '»' , "" }, /* Right angle quote, guillemot right */
{ '¼' , "" }, /* Fraction one-fourth */
{ '½' , "" }, /* Fraction one-half */
{ '¾' , "" }, /* Fraction three-fourths */
{ '¿' , "" }, /* Inverted question mark */
{ 'À' , "" }, /* Capital A, grave accent */
{ 'Á' , "" }, /* Capital A, acute accent */
{ 'Â' , "" }, /* Capital A, circumflex */
{ 'Ã' , "" }, /* Capital A, tilde */
{ 'Ä' , "" }, /* Capital A, diæresis / umlaut */
{ 'Å' , "" }, /* Capital A, ring */
{ 'Æ' , "" }, /* Capital AE ligature */
{ 'Ç' , "" }, /* Capital C, cedilla */
{ 'È' , "" }, /* Capital E, grave accent */
{ 'É' , "" }, /* Capital E, acute accent */
{ 'Ê' , "" }, /* Capital E, circumflex */
{ 'Ë' , "" }, /* Capital E, diæresis / umlaut */
{ 'Ì' , "" }, /* Capital I, grave accent */
{ 'Í' , "" }, /* Capital I, acute accent */
{ 'Î' , "" }, /* Capital I, circumflex */
{ 'Ï' , "" }, /* Capital I, diæresis / umlaut */
{ 'Ð' , "" }, /* Capital Eth, Icelandic */
{ 'Ñ' , "" }, /* Capital N, tilde */
{ 'Ò' , "" }, /* Capital O, grave accent */
{ 'Ó' , "" }, /* Capital O, acute accent */
{ 'Ô' , "" }, /* Capital O, circumflex */
{ 'Õ' , "" }, /* Capital O, tilde */
{ 'Ö' , "" }, /* Capital O, diæresis / umlaut */
{ '×' , "" }, /* Multiply sign */
{ 'Ø' , "" }, /* Capital O, slash */
{ 'Ù' , "" }, /* Capital U, grave accent */
{ 'Ú' , "" }, /* Capital U, acute accent */
{ 'Û' , "" }, /* Capital U, circumflex */
{ 'Ü' , "" }, /* Capital U, diæresis / umlaut */
{ 'Ý' , "" }, /* Capital Y, acute accent */
{ 'Þ' , "" }, /* Capital Thorn, Icelandic */
{ 'ß' , "" }, /* Small sharp s, German sz */
{ 'à' , "" }, /* Small a, grave accent */
{ 'ß' , "" }, /* Small a, acute accent */
{ 'â' , "" }, /* Small a, circumflex */
{ 'ã' , "" }, /* Small a, tilde */
{ 'ä' , "" }, /* Small a, diæresis / umlaut */
{ 'å' , "" }, /* Small a, ring */
{ 'æ' , "" }, /* Small ae ligature */
{ 'ç' , "" }, /* Small c, cedilla */
{ 'è' , "" }, /* Small e, grave accent */
{ 'é' , "" }, /* Small e, acute accent */
{ 'ê' , "" }, /* Small e, circumflex */
{ 'ë' , "" }, /* Small e, diæresis / umlaut */
{ 'ì' , "" }, /* Small i, grave accent */
{ 'í' , "" }, /* Small i, acute accent */
{ 'î' , "" }, /* Small i, circumflex */
{ 'ï' , "" }, /* Small i, diæresis / umlaut */
{ 'ð' , "" }, /* Small eth, Icelandic */
{ 'ñ' , "" }, /* Small n, tilde */
{ 'ò' , "" }, /* Small o, grave accent */
{ 'ó' , "" }, /* Small o, acute accent */
{ 'ô' , "" }, /* Small o, circumflex */
{ 'õ' , "" }, /* Small o, tilde */
{ 'ö' , "" }, /* Small o, diæresis / umlaut */
{ '÷' , "" }, /* Division sign */
{ 'ø' , "" }, /* Small o, slash */
{ 'ù' , "" }, /* Small u, grave accent */
{ 'ú' , "" }, /* Small u, acute accent */
{ 'û' , "" }, /* Small u, circumflex */
{ 'ü' , "" }, /* Small u, diæresis / umlaut */
{ 'ý' , "" }, /* Small y, acute accent */
{ 'þ' , "" }, /* Small thorn, Icelandic */
{ '\255', "" }, /* Small y, diæresis / umlaut */
} ;
struct tCharTrans Char2Url [] =
{
{ ' ' , "%00" }, /* &#00; Unused */
{ ' ' , "%01" }, /* &#01; Unused */
{ ' ' , "%02" }, /* &#02; Unused */
{ ' ' , "%03" }, /* &#03; Unused */
{ ' ' , "%04" }, /* &#04; Unused */
{ ' ' , "%05" }, /* &#05; Unused */
{ ' ' , "%06" }, /* &#06; Unused */
{ ' ' , "%07" }, /* &#07; Unused */
{ ' ' , "%08" }, /* &#08; Unused */
{ ' ' , "%09" }, /* &#09; Horizontal tab */
{ ' ' , "%0A" }, /* &#10; Line feed */
{ ' ' , "%0B" }, /* &#11; Unused */
{ ' ' , "%0C" }, /* &#12; Unused */
{ ' ' , "%0D" }, /* &#13; Carriage Return */
{ ' ' , "%0E" }, /* &#14; Unused */
{ ' ' , "%0F" }, /* &#15; Unused */
{ ' ' , "%10" }, /* &#16; Unused */
{ ' ' , "%11" }, /* &#17; Unused */
{ ' ' , "%12" }, /* &#18; Unused */
{ ' ' , "%13" }, /* &#19; Unused */
{ ' ' , "%14" }, /* &#20; Unused */
{ ' ' , "%15" }, /* &#21; Unused */
{ ' ' , "%16" }, /* &#22; Unused */
{ ' ' , "%17" }, /* &#23; Unused */
{ ' ' , "%18" }, /* &#24; Unused */
{ ' ' , "%19" }, /* &#25; Unused */
{ ' ' , "%1A" }, /* &#26; Unused */
{ ' ' , "%1B" }, /* &#27; Unused */
{ ' ' , "%1C" }, /* &#28; Unused */
{ ' ' , "%1D" }, /* &#29; Unused */
{ ' ' , "%1E" }, /* &#30; Unused */
{ ' ' , "%1F" }, /* &#31; Unused */
{ ' ' , "%20" }, /* &#32; Space */
{ '!' , "" }, /* &#33; Exclamation mark */
{ '"' , "%22" }, /* Quotation mark */
{ '#' , "%23" }, /* &#35; Number sign */
{ '$' , "" }, /* &#36; Dollar sign */
{ '%' , "%25" }, /* &#37; Percent sign */
{ '&' , "%26" }, /* Ampersand */
{ '\'' , "%27" }, /* &#39; Apostrophe */
{ '(' , "" }, /* &#40; Left parenthesis */
{ ')' , "" }, /* &#41; Right parenthesis */
{ '*' , "" }, /* &#42; Asterisk */
{ '+' , "%2B" }, /* &#43; Plus sign */
{ ',' , "" }, /* &#44; Comma */
{ '-' , "" }, /* &#45; Hyphen */
{ '.' , "" }, /* &#46; Period (fullstop) */
{ '/' , "" }, /* &#47; Solidus (slash) */
{ '0' , "" }, /* &#48; Digit 0 */
{ '1' , "" }, /* &#49; Digit 1 */
{ '2' , "" }, /* &#50; Digit 2 */
{ '3' , "" }, /* &#51; Digit 3 */
{ '4' , "" }, /* &#52; Digit 4 */
{ '5' , "" }, /* &#53; Digit 5 */
{ '6' , "" }, /* &#54; Digit 6 */
{ '7' , "" }, /* &#55; Digit 7 */
{ '8' , "" }, /* &#56; Digit 8 */
{ '9' , "" }, /* &#57; Digit 9 */
{ ':' , "" }, /* &#58; Colon */
{ ';' , "%3B" }, /* &#59; Semicolon */
{ '<' , "%3C" }, /* Less than */
{ '=' , "%3D" }, /* &#61; Equals sign */
{ '>' , "%3E" }, /* Greater than */
{ '?' , "%3F" }, /* &#63; Question mark */
{ '@' , "" }, /* &#64; Commercial at */
{ 'A' , "" }, /* &#65; Capital A */
{ 'B' , "" }, /* &#66; Capital B */
{ 'C' , "" }, /* &#67; Capital C */
{ 'D' , "" }, /* &#68; Capital D */
{ 'E' , "" }, /* &#69; Capital E */
{ 'F' , "" }, /* &#70; Capital F */
{ 'G' , "" }, /* &#71; Capital G */
{ 'H' , "" }, /* &#72; Capital H */
{ 'I' , "" }, /* &#73; Capital I */
{ 'J' , "" }, /* &#74; Capital J */
{ 'K' , "" }, /* &#75; Capital K */
{ 'L' , "" }, /* &#76; Capital L */
{ 'M' , "" }, /* &#77; Capital M */
{ 'N' , "" }, /* &#78; Capital N */
{ 'O' , "" }, /* &#79; Capital O */
{ 'P' , "" }, /* &#80; Capital P */
{ 'Q' , "" }, /* &#81; Capital Q */
{ 'R' , "" }, /* &#82; Capital R */
{ 'S' , "" }, /* &#83; Capital S */
{ 'T' , "" }, /* &#84; Capital T */
{ 'U' , "" }, /* &#85; Capital U */
{ 'V' , "" }, /* &#86; Capital V */
{ 'W' , "" }, /* &#87; Capital W */
{ 'X' , "" }, /* &#88; Capital X */
{ 'Y' , "" }, /* &#89; Capital Y */
{ 'Z' , "" }, /* &#90; Capital Z */
{ '[' , "" }, /* &#91; Left square bracket */
{ '\\' , "" }, /* &#92; Reverse solidus (backslash) */
{ ']' , "" }, /* &#93; Right square bracket */
{ '^' , "" }, /* &#94; Caret */
{ '_' , "" }, /* &#95; Horizontal bar (underscore) */
{ '`' , "" }, /* &#96; Acute accent */
{ 'a' , "" }, /* &#97; Small a */
{ 'b' , "" }, /* &#98; Small b */
{ 'c' , "" }, /* &#99; Small c */
{ 'd' , "" }, /* &#100; Small d */
{ 'e' , "" }, /* &#101; Small e */
{ 'f' , "" }, /* &#102; Small f */
{ 'g' , "" }, /* &#103; Small g */
{ 'h' , "" }, /* &#104; Small h */
{ 'i' , "" }, /* &#105; Small i */
{ 'j' , "" }, /* &#106; Small j */
{ 'k' , "" }, /* &#107; Small k */
{ 'l' , "" }, /* &#108; Small l */
{ 'm' , "" }, /* &#109; Small m */
{ 'n' , "" }, /* &#110; Small n */
{ 'o' , "" }, /* &#111; Small o */
{ 'p' , "" }, /* &#112; Small p */
{ 'q' , "" }, /* &#113; Small q */
{ 'r' , "" }, /* &#114; Small r */
{ 's' , "" }, /* &#115; Small s */
{ 't' , "" }, /* &#116; Small t */
{ 'u' , "" }, /* &#117; Small u */
{ 'v' , "" }, /* &#118; Small v */
{ 'w' , "" }, /* &#119; Small w */
{ 'x' , "" }, /* &#120; Small x */
{ 'y' , "" }, /* &#121; Small y */
{ 'z' , "" }, /* &#122; Small z */
{ '{' , "" }, /* &#123; Left curly brace */
{ '|' , "" }, /* &#124; Vertical bar */
{ '}' , "" }, /* &#125; Right curly brace */
{ '~' , "" }, /* &#126; Tilde */
{ '' , "" }, /* &#127; Unused */
{ '€' , "" }, /* &#128; Unused */
{ ' ' , "" }, /* &#129; Unused */
{ ' ' , "" }, /* &#130; Unused */
{ ' ' , "" }, /* &#131; Unused */
{ ' ' , "" }, /* &#132; Unused */
{ ' ' , "" }, /* &#133; Unused */
{ ' ' , "" }, /* &#134; Unused */
{ ' ' , "" }, /* &#135; Unused */
{ ' ' , "" }, /* &#136; Unused */
{ ' ' , "" }, /* &#137; Unused */
{ ' ' , "" }, /* &#138; Horizontal tab */
{ ' ' , "" }, /* &#139; Line feed */
{ ' ' , "" }, /* &#140; Unused */
{ ' ' , "" }, /* &#141; Unused */
{ ' ' , "" }, /* &#142; Carriage Return */
{ ' ' , "" }, /* &#143; Unused */
{ ' ' , "" }, /* &#144; Unused */
{ ' ' , "" }, /* &#145; Unused */
{ ' ' , "" }, /* &#146; Unused */
{ ' ' , "" }, /* &#147; Unused */
{ ' ' , "" }, /* &#148; Unused */
{ ' ' , "" }, /* &#149; Unused */
{ ' ' , "" }, /* &#150; Unused */
{ ' ' , "" }, /* &#151; Unused */
{ ' ' , "" }, /* &#152; Unused */
{ ' ' , "" }, /* &#153; Unused */
{ ' ' , "" }, /* &#154; Unused */
{ ' ' , "" }, /* &#155; Unused */
{ ' ' , "" }, /* &#156; Unused */
{ ' ' , "" }, /* &#157; Unused */
{ ' ' , "" }, /* &#158; Unused */
{ ' ' , "" }, /* &#159; Unused */
{ ' ' , "" }, /* Non-breaking Space */
{ '¡' , "" }, /* Inverted exclamation */
{ '¢' , "" }, /* Cent sign */
{ '£' , "" }, /* Pound sterling */
{ '¤' , "" }, /* General currency sign */
{ '¥' , "" }, /* Yen sign */
{ '¦' , "" }, /* Broken vertical bar */
{ '§' , "" }, /* Section sign */
{ '¨' , "" }, /* Diæresis / Umlaut */
{ '©' , "" }, /* Copyright */
{ 'ª' , "" }, /* Feminine ordinal */
{ '«' , "" }, /* Left angle quote, guillemot left */
{ '¬' , "" }, /* Not sign */
{ '­' , "" }, /* Soft hyphen */
{ '®' , "" }, /* Registered trademark */
{ '¯' , "" }, /* Macron accent */
{ '°' , "" }, /* Degree sign */
{ '±' , "" }, /* Plus or minus */
{ '²' , "" }, /* Superscript two */
{ '³' , "" }, /* Superscript three */
{ '´' , "" }, /* Acute accent */
{ 'µ' , "" }, /* Micro sign */
{ '¶' , "" }, /* Paragraph sign */
{ '·' , "" }, /* Middle dot */
{ '¸' , "" }, /* Cedilla */
{ '¹' , "" }, /* Superscript one */
{ 'º' , "" }, /* Masculine ordinal */
{ '»' , "" }, /* Right angle quote, guillemot right */
{ '¼' , "" }, /* Fraction one-fourth */
{ '½' , "" }, /* Fraction one-half */
{ '¾' , "" }, /* Fraction three-fourths */
{ '¿' , "" }, /* Inverted question mark */
{ 'À' , "" }, /* Capital A, grave accent */
{ 'Á' , "" }, /* Capital A, acute accent */
{ 'Â' , "" }, /* Capital A, circumflex */
{ 'Ã' , "" }, /* Capital A, tilde */
{ 'Ä' , "" }, /* Capital A, diæresis / umlaut */
{ 'Å' , "" }, /* Capital A, ring */
{ 'Æ' , "" }, /* Capital AE ligature */
{ 'Ç' , "" }, /* Capital C, cedilla */
{ 'È' , "" }, /* Capital E, grave accent */
{ 'É' , "" }, /* Capital E, acute accent */
{ 'Ê' , "" }, /* Capital E, circumflex */
{ 'Ë' , "" }, /* Capital E, diæresis / umlaut */
{ 'Ì' , "" }, /* Capital I, grave accent */
{ 'Í' , "" }, /* Capital I, acute accent */
{ 'Î' , "" }, /* Capital I, circumflex */
{ 'Ï' , "" }, /* Capital I, diæresis / umlaut */
{ 'Ð' , "" }, /* Capital Eth, Icelandic */
{ 'Ñ' , "" }, /* Capital N, tilde */
{ 'Ò' , "" }, /* Capital O, grave accent */
{ 'Ó' , "" }, /* Capital O, acute accent */
{ 'Ô' , "" }, /* Capital O, circumflex */
{ 'Õ' , "" }, /* Capital O, tilde */
{ 'Ö' , "" }, /* Capital O, diæresis / umlaut */
{ '×' , "" }, /* Multiply sign */
{ 'Ø' , "" }, /* Capital O, slash */
{ 'Ù' , "" }, /* Capital U, grave accent */
{ 'Ú' , "" }, /* Capital U, acute accent */
{ 'Û' , "" }, /* Capital U, circumflex */
{ 'Ü' , "" }, /* Capital U, diæresis / umlaut */
{ 'Ý' , "" }, /* Capital Y, acute accent */
{ 'Þ' , "" }, /* Capital Thorn, Icelandic */
{ 'ß' , "" }, /* Small sharp s, German sz */
{ 'à' , "" }, /* Small a, grave accent */
{ 'ß' , "" }, /* Small a, acute accent */
{ 'â' , "" }, /* Small a, circumflex */
{ 'ã' , "" }, /* Small a, tilde */
{ 'ä' , "" }, /* Small a, diæresis / umlaut */
{ 'å' , "" }, /* Small a, ring */
{ 'æ' , "" }, /* Small ae ligature */
{ 'ç' , "" }, /* Small c, cedilla */
{ 'è' , "" }, /* Small e, grave accent */
{ 'é' , "" }, /* Small e, acute accent */
{ 'ê' , "" }, /* Small e, circumflex */
{ 'ë' , "" }, /* Small e, diæresis / umlaut */
{ 'ì' , "" }, /* Small i, grave accent */
{ 'í' , "" }, /* Small i, acute accent */
{ 'î' , "" }, /* Small i, circumflex */
{ 'ï' , "" }, /* Small i, diæresis / umlaut */
{ 'ð' , "" }, /* Small eth, Icelandic */
{ 'ñ' , "" }, /* Small n, tilde */
{ 'ò' , "" }, /* Small o, grave accent */
{ 'ó' , "" }, /* Small o, acute accent */
{ 'ô' , "" }, /* Small o, circumflex */
{ 'õ' , "" }, /* Small o, tilde */
{ 'ö' , "" }, /* Small o, diæresis / umlaut */
{ '÷' , "" }, /* Division sign */
{ 'ø' , "" }, /* Small o, slash */
{ 'ù' , "" }, /* Small u, grave accent */
{ 'ú' , "" }, /* Small u, acute accent */
{ 'û' , "" }, /* Small u, circumflex */
{ 'ü' , "" }, /* Small u, diæresis / umlaut */
{ 'ý' , "" }, /* Small y, acute accent */
{ 'þ' , "" }, /* Small thorn, Icelandic */
{ '\255', "" }, /* Small y, diæresis / umlaut */
} ;
struct tCharTrans Html2Char [] =
{
{ 'Æ' , "" }, /* Capital AE ligature */
{ 'Á' , "" }, /* Capital A, acute accent */
{ 'Â' , "" }, /* Capital A, circumflex */
{ 'À' , "" }, /* Capital A, grave accent */
{ 'Å' , "" }, /* Capital A, ring */
{ 'Ã' , "" }, /* Capital A, tilde */
{ 'Ä' , "" }, /* Capital A, diæresis / umlaut */
{ 'Ç' , "" }, /* Capital C, cedilla */
{ 'Ð' , "" }, /* Capital Eth, Icelandic */
{ 'É' , "" }, /* Capital E, acute accent */
{ 'Ê' , "" }, /* Capital E, circumflex */
{ 'È' , "" }, /* Capital E, grave accent */
{ 'Ë' , "" }, /* Capital E, diæresis / umlaut */
{ 'Í' , "" }, /* Capital I, acute accent */
{ 'Î' , "" }, /* Capital I, circumflex */
{ 'Ì' , "" }, /* Capital I, grave accent */
{ 'Ï' , "" }, /* Capital I, diæresis / umlaut */
{ 'Ñ' , "" }, /* Capital N, tilde */
{ 'Ó' , "" }, /* Capital O, acute accent */
{ 'Ô' , "" }, /* Capital O, circumflex */
{ 'Ò' , "" }, /* Capital O, grave accent */
{ 'Ø' , "" }, /* Capital O, slash */
{ 'Õ' , "" }, /* Capital O, tilde */
{ 'Ö' , "" }, /* Capital O, diæresis / umlaut */
{ 'Þ' , "" }, /* Capital Thorn, Icelandic */
{ 'Ú' , "" }, /* Capital U, acute accent */
{ 'Û' , "" }, /* Capital U, circumflex */
{ 'Ù' , "" }, /* Capital U, grave accent */
{ 'Ü' , "" }, /* Capital U, diæresis / umlaut */
{ 'Ý' , "" }, /* Capital Y, acute accent */
{ 'ß' , "" }, /* Small a, acute accent */
{ 'â' , "" }, /* Small a, circumflex */
{ '´' , "" }, /* Acute accent */
{ 'æ' , "" }, /* Small ae ligature */
{ 'à' , "" }, /* Small a, grave accent */
{ '&' , "" }, /* Ampersand */
{ 'å' , "" }, /* Small a, ring */
{ 'ã' , "" }, /* Small a, tilde */
{ 'ä' , "" }, /* Small a, diæresis / umlaut */
{ '¦' , "" }, /* Broken vertical bar */
{ '¦' , "" }, /* Broken vertical bar */
{ 'ç' , "" }, /* Small c, cedilla */
{ '¸' , "" }, /* Cedilla */
{ '¢' , "" }, /* Cent sign */
{ '©' , "" }, /* Copyright */
{ '¤' , "" }, /* General currency sign */
{ '°' , "" }, /* Degree sign */
{ '¨' , "" }, /* Diæresis / Umlaut */
{ '÷' , "" }, /* Division sign */
{ 'é' , "" }, /* Small e, acute accent */
{ 'ê' , "" }, /* Small e, circumflex */
{ 'è' , "" }, /* Small e, grave accent */
{ 'ð' , "" }, /* Small eth, Icelandic */
{ 'ë' , "" }, /* Small e, diæresis / umlaut */
{ '½' , "" }, /* Fraction one-half */
{ '¼' , "" }, /* Fraction one-fourth */
{ '¾' , "" }, /* Fraction three-fourths */
{ '>' , "" }, /* Greater than */
{ '¯' , "" }, /* Macron accent */
{ 'í' , "" }, /* Small i, acute accent */
{ 'î' , "" }, /* Small i, circumflex */
{ '¡' , "" }, /* Inverted exclamation */
{ 'ì' , "" }, /* Small i, grave accent */
{ '¿' , "" }, /* Inverted question mark */
{ 'ï' , "" }, /* Small i, diæresis / umlaut */
{ '«' , "" }, /* Left angle quote, guillemot left */
{ '<' , "" }, /* Less than */
{ '¯' , "" }, /* Macron accent */
{ 'µ' , "" }, /* Micro sign */
{ '·' , "" }, /* Middle dot */
{ ' ' , "" }, /* Non-breaking Space */
{ '¬' , "" }, /* Not sign */
{ 'ñ' , "" }, /* Small n, tilde */
{ 'ó' , "" }, /* Small o, acute accent */
{ 'ô' , "" }, /* Small o, circumflex */
{ 'ò' , "" }, /* Small o, grave accent */
{ 'ª' , "" }, /* Feminine ordinal */
{ 'º' , "" }, /* Masculine ordinal */
{ 'ø' , "" }, /* Small o, slash */
{ 'õ' , "" }, /* Small o, tilde */
{ 'ö' , "" }, /* Small o, diæresis / umlaut */
{ '¶' , "" }, /* Paragraph sign */
{ '±' , "" }, /* Plus or minus */
{ '£' , "" }, /* Pound sterling */
{ '"' , "" }, /* Quotation mark */
{ '»' , "" }, /* Right angle quote, guillemot right */
{ '®' , "" }, /* Registered trademark */
{ '§' , "" }, /* Section sign */
{ '­' , "" }, /* Soft hyphen */
{ '¹' , "" }, /* Superscript one */
{ '²' , "" }, /* Superscript two */
{ '³' , "" }, /* Superscript three */
{ 'ß' , "" }, /* Small sharp s, German sz */
{ 'þ' , "" }, /* Small thorn, Icelandic */
{ '×' , "" }, /* Multiply sign */
{ 'ú' , "" }, /* Small u, acute accent */
{ 'û' , "" }, /* Small u, circumflex */
{ 'ù' , "" }, /* Small u, grave accent */
{ '¨' , "" }, /* Diæresis / Umlaut */
{ 'ü' , "" }, /* Small u, diæresis / umlaut */
{ 'ý' , "" }, /* Small y, acute accent */
{ '¥' , "" }, /* Yen sign */
{ '\255', "" }, /* Small y, diæresis / umlaut */
} ;
int sizeHtml2Char = sizeof (Html2Char) / sizeof (struct tCharTrans) ;