HTML entities

LiveCode is the premier environment for creating multi-platform solutions for all major operating systems - Windows, Mac OS X, Linux, the Web, Server environments and Mobile platforms. Brand new to LiveCode? Welcome!

Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller, robinmiller

Post Reply
exheusden
Posts: 170
Joined: Fri Oct 09, 2009 5:03 pm
Location: Belgium
Contact:

HTML entities

Post by exheusden » Sat Apr 29, 2017 10:54 am

Many years ago, I wrote a HyperText function to convert accented and other special characters to HTML entities.

I was recently looking at the now LiveCode stack that contains this function, in order to modify the old textual entities into numeric ones. The function is:

Code: Select all

function textToEntities textToCheck
   
   put "&,ä,á,à,â,ã,å,æ,ë,è,é,ê,í,ï,î,ñ,ö,ó,ò,ô,õ,ü,ú,ù,ç,Å,Æ,Ö,Ü,…,—,£,¡,ß" into textTable
   put "&,ä,á,à,â,ã,å,æ,ë,è,é,ê,í,ï,î,ñ,ö,ó,ò,ô,õ,ü,ú,ù,ç,Å,Æ,Ö,Ü,…,—,£,¡,ß" into entityTable
   put 0 into itemCount
   
   repeat for each item textTableItem in textTable
      get textTableItem
      add 1 to itemCount
      replace it with item itemCount of entityTable in textToCheck
   end repeat 
   
   return textToCheck
end textToEntities
Is there a more "automatic" way (perhaps a built-in function) to do this in LiveCode?

Klaus
Posts: 13829
Joined: Sat Apr 08, 2006 8:41 am
Location: Germany
Contact:

Re: HTML entities

Post by Klaus » Sat Apr 29, 2017 11:58 am

Hola Exheusden,

if you can live with html entity NAMES instead of numbers, you can use something like this, from a quick test:

Code: Select all

on mouseUp
   put "&,ä,á,à,â,ã,å,æ,ë,è,é,ê,í,ï,î,ñ,ö,ó,ò,ô,õ,ü,ú,ù,ç,Å,Æ,Ö,Ü,…,—,£,¡,ß" into TT
   set the text of the templatefield to TT
   put the HTMLtext of the templatefield into fld 1
   reset the templatefield
end mouseUp
You get the picture. :D

Best

Klaus

exheusden
Posts: 170
Joined: Fri Oct 09, 2009 5:03 pm
Location: Belgium
Contact:

Re: HTML entities

Post by exheusden » Sat Apr 29, 2017 11:59 am

Thank you again, Klaus. That looks a lot tidier!

However, this returns the old character HTML entities, such as &,ä,á,à,â,ã,å,æ,ë,è, etc.

I want the entity numbers, such as &,ä,á,à,â,ã,å,æ,ë,è, etc

Klaus
Posts: 13829
Joined: Sat Apr 08, 2006 8:41 am
Location: Germany
Contact:

Re: HTML entities

Post by Klaus » Sat Apr 29, 2017 12:34 pm

exheusden wrote:However, this returns the old character HTML entities, such as &,ä,á,à,â,ã,å,æ,ë,è, etc.
I want the entity numbers, such as &,ä,á,à,â,ã,å,æ,ë,è, etc
Yep, that's why I wrote:
if you can live with html entity NAMES instead of numbers...

8)

exheusden
Posts: 170
Joined: Fri Oct 09, 2009 5:03 pm
Location: Belgium
Contact:

Re: HTML entities

Post by exheusden » Sat Apr 29, 2017 12:38 pm

Indeed, and I can't, so should I take it that there is no more efficient way to achieve what I want than my code? It works surprisingly well, but seems a bit dated (just like my car…).

Klaus
Posts: 13829
Joined: Sat Apr 08, 2006 8:41 am
Location: Germany
Contact:

Re: HTML entities

Post by Klaus » Sat Apr 29, 2017 12:54 pm

Well, I don't even own a car! :D

[-hh]
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 2262
Joined: Thu Feb 28, 2013 11:52 pm
Location: Göttingen, DE

Re: HTML entities

Post by [-hh] » Sat Apr 29, 2017 2:58 pm

For LC 7/8/9 an (Unicode-) extended table may be interesting?

For example the currency symbol for Euro is in the lookup table below:

Code: Select all

€€
So this works in LC 7/8/9:

Code: Select all

set htmltext of fld "OUT1" to "€"
For generating your conversion list you could use
      codepointToNum and numToCodepoint
for example, with the Euro symbol,
      codepointToNum("€") and numToCodepoint(8364)

Here is my lookup table sorted by the (decimal) numbers:

Code: Select all

""
&&
''
<<
>>
&#160;&nbsp;
&#161;&iexcl;
&#162;&cent;
&#163;&pound;
&#164;&curren;
&#165;&yen;
&#166;&brvbar;
&#167;&sect;
&#168;&uml;
&#169;&copy;
&#170;&ordf;
&#171;&laquo;
&#172;&not;
&#173;&shy;
&#174;&reg;
&#175;&macr;
&#176;&deg;
&#177;&plusmn;
&#178;&sup2;
&#179;&sup3;
&#180;&acute;
&#181;&micro;
&#182;&para;
&#183;&middot;
&#184;&cedil;
&#185;&sup1;
&#186;&ordm;
&#187;&raquo;
&#188;&frac14;
&#189;&frac12;
&#190;&frac34;
&#191;&iquest;
&#192;&Agrave;
&#194;&Acirc;
&#195;&Atilde;
&#196;&Auml;
&#197;&Aring;
&#198;&AElig;
&#199;&Ccedil;
&#200;&Egrave;
&#201;&Eacute;
&#202;&Ecirc;
&#203;&Euml;
&#204;&Igrave;
&#205;&Iacute;
&#206;&Icirc;
&#207;&Iuml;
&#208;&ETH;
&#209;&Ntilde;
&#210;&Ograve;
&#211;&Oacute;
&#212;&Ocirc;
&#213;&Otilde;
&#214;&Ouml;
&#215;&times;
&#216;&Oslash;
&#217;&Ugrave;
&#218;&Uacute;
&#219;&Ucirc;
&#220;&Uuml;
&#221;&Yacute;
&#222;&THORN;
&#223;&szlig;
&#224;&agrave;
&#226;&acirc;
&#227;&atilde;
&#228;&auml;
&#229;&aring;
&#230;&aelig;
&#231;&ccedil;
&#232;&egrave;
&#233;&eacute;
&#234;&ecirc;
&#235;&euml;
&#236;&igrave;
&#237;&iacute;
&#238;&icirc;
&#239;&iuml;
&#240;&eth;
&#241;&ntilde;
&#242;&ograve;
&#243;&oacute;
&#244;&ocirc;
&#245;&otilde;
&#246;&ouml;
&#247;&divide;
&#248;&oslash;
&#249;&ugrave;
&#250;&uacute;
&#251;&ucirc;
&#252;&uuml;
&#253;&yacute;
&#254;&thorn;
&#255;&yuml;
&#338;&OElig;
&#339;&oelig;
&#352;&Scaron;
&#353;&scaron;
&#376;&Yuml;
&#402;&fnof;
&#710;&circ;
&#732;&tilde;
&#913;&Alpha;
&#914;&Beta;
&#915;&Gamma;
&#916;&Delta;
&#917;&Epsilon;
&#918;&Zeta;
&#919;&Eta;
&#920;&Theta;
&#921;&Iota;
&#922;&Kappa;
&#923;&Lambda;
&#924;&Mu;
&#925;&Nu;
&#926;&Xi;
&#927;&Omicron;
&#928;&Pi;
&#929;&Rho;
&#931;&Sigma;
&#932;&Tau;
&#933;&Upsilon;
&#934;&Phi;
&#935;&Chi;
&#936;&Psi;
&#937;&Omega;
&#945;&alpha;
&#946;&beta;
&#947;&gamma;
&#948;&delta;
&#949;&epsilon;
&#950;&zeta;
&#951;&eta;
&#952;&theta;
&#953;&iota;
&#954;&kappa;
&#955;&lambda;
&#956;&mu;
&#957;&nu;
&#958;&xi;
&#959;&omicron;
&#960;&pi;
&#961;&rho;
&#962;&sigmaf;
&#963;&sigma;
&#964;&tau;
&#965;&upsilon;
&#966;&phi;
&#967;&chi;
&#968;&psi;
&#969;&omega;
&#977;&thetasym;
&#978;&upsih;
&#982;&piv;
&#8194;&ensp;
&#8195;&emsp;
&#8201;&thinsp;
&#8204;&zwnj;
&#8205;&zwj;
&#8206;&lrm;
&#8207;&rlm;
&#8211;&ndash;
&#8212;&mdash;
&#8216;&lsquo;
&#8217;&rsquo;
&#8218;&sbquo;
&#8220;&ldquo;
&#8221;&rdquo;
&#8222;&bdquo;
&#8224;&dagger;
&#8225;&Dagger;
&#8226;&bull;
&#8230;&hellip;
&#8240;&permil;
&#8242;&prime;
&#8243;&Prime;
&#8249;&lsaquo;
&#8250;&rsaquo;
&#8254;&oline;
&#8260;&frasl;
&#8364;&euro;
&#8465;&image;
&#8472;&weierp;
&#8476;&real;
&#8482;&trade;
&#8501;&alefsym;
&#8592;&larr;
&#8593;&uarr;
&#8594;&rarr;
&#8595;&darr;
&#8596;&harr;
&#8629;&crarr;
&#8656;&lArr;
&#8657;&uArr;
&#8658;&rArr;
&#8659;&dArr;
&#8660;&hArr;
&#8704;&forall;
&#8706;&part;
&#8707;&exist;
&#8709;&empty;
&#8711;&nabla;
&#8712;&isin;
&#8713;&notin;
&#8715;&ni;
&#8719;&prod;
&#8721;&sum;
&#8722;&minus;
&#8727;&lowast;
&#8730;&radic;
&#8733;&prop;
&#8734;&infin;
&#8736;&ang;
&#8743;&and;
&#8744;&or;
&#8745;&cap;
&#8746;&cup;
&#8747;&int;
&#8756;&there4;
&#8764;&sim;
&#8773;&cong;
&#8776;&asymp;
&#8800;&ne;
&#8801;&equiv;
&#8804;&le;
&#8805;&ge;
&#8834;&sub;
&#8835;&sup;
&#8836;&nsub;
&#8838;&sube;
&#8839;&supe;
&#8853;&oplus;
&#8855;&otimes;
&#8869;&perp;
&#8901;&sdot;
&#8968;&lceil;
&#8969;&rceil;
&#8970;&lfloor;
&#8971;&rfloor;
&#9001;&lang;
&#9002;&rang;
&#9674;&loz;
&#9824;&spades;
&#9827;&clubs;
&#9829;&hearts;
&#9830;&diams;
And here is the same table (just for easy access by the impatient readers) sorted by the HTML-entity names:

Code: Select all

&Acirc;&#194;
&acirc;&#226;
&acute;&#180;
&AElig;&#198;
&aelig;&#230;
&Agrave;&#192;
&agrave;&#224;
&alefsym;&#8501;
&Alpha;&#913;
&alpha;&#945;
&&
&and;&#8743;
&ang;&#8736;
&apos;'
&Aring;&#197;
&aring;&#229;
&asymp;&#8776;
&Atilde;&#195;
&atilde;&#227;
&Auml;&#196;
&auml;&#228;
&bdquo;&#8222;
&Beta;&#914;
&beta;&#946;
&brvbar;&#166;
&bull;&#8226;
&cap;&#8745;
&Ccedil;&#199;
&ccedil;&#231;
&cedil;&#184;
&cent;&#162;
&Chi;&#935;
&chi;&#967;
&circ;&#710;
&clubs;&#9827;
&cong;&#8773;
&copy;&#169;
&crarr;&#8629;
&cup;&#8746;
&curren;&#164;
&Dagger;&#8225;
&dagger;&#8224;
&dArr;&#8659;
&darr;&#8595;
&deg;&#176;
&Delta;&#916;
&delta;&#948;
&diams;&#9830;
&divide;&#247;
&Eacute;&#201;
&eacute;&#233;
&Ecirc;&#202;
&ecirc;&#234;
&Egrave;&#200;
&egrave;&#232;
&empty;&#8709;
&emsp;&#8195;
&ensp;&#8194;
&Epsilon;&#917;
&epsilon;&#949;
&equiv;&#8801;
&Eta;&#919;
&eta;&#951;
&ETH;&#208;
&eth;&#240;
&Euml;&#203;
&euml;&#235;
&euro;&#8364;
&exist;&#8707;
&fnof;&#402;
&forall;&#8704;
&frac12;&#189;
&frac14;&#188;
&frac34;&#190;
&frasl;&#8260;
&Gamma;&#915;
&gamma;&#947;
&ge;&#8805;
>>
&hArr;&#8660;
&harr;&#8596;
&hearts;&#9829;
&hellip;&#8230;
&Iacute;&#205;
&iacute;&#237;
&Icirc;&#206;
&icirc;&#238;
&iexcl;&#161;
&Igrave;&#204;
&igrave;&#236;
&image;&#8465;
&infin;&#8734;
&int;&#8747;
&Iota;&#921;
&iota;&#953;
&iquest;&#191;
&isin;&#8712;
&Iuml;&#207;
&iuml;&#239;
&Kappa;&#922;
&kappa;&#954;
&Lambda;&#923;
&lambda;&#955;
&lang;&#9001;
&laquo;&#171;
&lArr;&#8656;
&larr;&#8592;
&lceil;&#8968;
&ldquo;&#8220;
&le;&#8804;
&lfloor;&#8970;
&lowast;&#8727;
&loz;&#9674;
&lrm;&#8206;
&lsaquo;&#8249;
&lsquo;&#8216;
<<
&macr;&#175;
&mdash;&#8212;
&micro;&#181;
&middot;&#183;
&minus;&#8722;
&Mu;&#924;
&mu;&#956;
&nabla;&#8711;
&nbsp;&#160;
&ndash;&#8211;
&ne;&#8800;
&ni;&#8715;
&not;&#172;
&notin;&#8713;
&nsub;&#8836;
&Ntilde;&#209;
&ntilde;&#241;
&Nu;&#925;
&nu;&#957;
&Oacute;&#211;
&oacute;&#243;
&Ocirc;&#212;
&ocirc;&#244;
&OElig;&#338;
&oelig;&#339;
&Ograve;&#210;
&ograve;&#242;
&oline;&#8254;
&Omega;&#937;
&omega;&#969;
&Omicron;&#927;
&omicron;&#959;
&oplus;&#8853;
&or;&#8744;
&ordf;&#170;
&ordm;&#186;
&Oslash;&#216;
&oslash;&#248;
&Otilde;&#213;
&otilde;&#245;
&otimes;&#8855;
&Ouml;&#214;
&ouml;&#246;
&para;&#182;
&part;&#8706;
&permil;&#8240;
&perp;&#8869;
&Phi;&#934;
&phi;&#966;
&Pi;&#928;
&pi;&#960;
&piv;&#982;
&plusmn;&#177;
&pound;&#163;
&Prime;&#8243;
&prime;&#8242;
&prod;&#8719;
&prop;&#8733;
&Psi;&#936;
&psi;&#968;
""
&radic;&#8730;
&rang;&#9002;
&raquo;&#187;
&rArr;&#8658;
&rarr;&#8594;
&rceil;&#8969;
&rdquo;&#8221;
&real;&#8476;
&reg;&#174;
&rfloor;&#8971;
&Rho;&#929;
&rho;&#961;
&rlm;&#8207;
&rsaquo;&#8250;
&rsquo;&#8217;
&sbquo;&#8218;
&Scaron;&#352;
&scaron;&#353;
&sdot;&#8901;
&sect;&#167;
&shy;&#173;
&Sigma;&#931;
&sigma;&#963;
&sigmaf;&#962;
&sim;&#8764;
&spades;&#9824;
&sub;&#8834;
&sube;&#8838;
&sum;&#8721;
&sup;&#8835;
&sup1;&#185;
&sup2;&#178;
&sup3;&#179;
&supe;&#8839;
&szlig;&#223;
&Tau;&#932;
&tau;&#964;
&there4;&#8756;
&Theta;&#920;
&theta;&#952;
&thetasym;&#977;
&thinsp;&#8201;
&THORN;&#222;
&thorn;&#254;
&tilde;&#732;
&times;&#215;
&trade;&#8482;
&Uacute;&#218;
&uacute;&#250;
&uArr;&#8657;
&uarr;&#8593;
&Ucirc;&#219;
&ucirc;&#251;
&Ugrave;&#217;
&ugrave;&#249;
&uml;&#168;
&upsih;&#978;
&Upsilon;&#933;
&upsilon;&#965;
&Uuml;&#220;
&uuml;&#252;
&weierp;&#8472;
&Xi;&#926;
&xi;&#958;
&Yacute;&#221;
&yacute;&#253;
&yen;&#165;
&Yuml;&#376;
&yuml;&#255;
&Zeta;&#918;
&zeta;&#950;
&zwj;&#8205;
&zwnj;&#8204;
shiftLock happens

Post Reply

Return to “Getting Started with LiveCode - Experienced Developers”