Accueil > JavaScript > Manage special characters

Manage special characters

28/01/2009

/**
 * This library is design to manage characters, replacements, encoding ...
 *
 * This javascript needs prototype.js v1.4
 */
var characters = [
//	{ decimal: '&#34', symbol: 'A DOUBLE QUOTE HERE', entity: '"', octal: '42', hex: '0x22' },
	{ decimal: '&#38', symbol: '&', entity: '&', octal: '46', hex: '0x26' },
	{ decimal: '&#60', symbol: '<', entity: '<', octal: '74', hex: '0x3C' },
	{ decimal: '&#62', symbol: '>', entity: '>', octal: '76', hex: '0x3E' },
	{ decimal: '&#160', symbol: ' ', entity: '&nbsp;', octal: '240', hex: '0xA0' },
	{ decimal: '&#161', symbol: '?', entity: '&iexcl;', octal: '241', hex: '0xA1' },
	{ decimal: '&#162', symbol: '?', entity: '&cent;', octal: '242', hex: '0xA2' },
	{ decimal: '&#163', symbol: '?', entity: '&pound;', octal: '243', hex: '0xA3' },
	{ decimal: '&#164', symbol: '¤', entity: '&curren;', octal: '244', hex: '0xA4' },
	{ decimal: '&#165', symbol: '?', entity: '&yen;', octal: '245', hex: '0xA5' },
	{ decimal: '&#166', symbol: '?', entity: '&brvbar;', octal: '246', hex: '0xA6' },
	{ decimal: '&#167', symbol: '§', entity: '&sect;', octal: '247', hex: '0xA7' },
	{ decimal: '&#168', symbol: '¨', entity: '&uml;', octal: '250', hex: '0xA8' },
	{ decimal: '&#169', symbol: '?', entity: '&copy;', octal: '251', hex: '0xA9' },
	{ decimal: '&#170', symbol: '?', entity: '&ordf;', octal: '252', hex: '0xAA' },
	{ decimal: '&#171', symbol: '?', entity: '&laquo;', octal: '253', hex: '0xAB' },
	{ decimal: '&#172', symbol: '?', entity: '&not;', octal: '254', hex: '0xAC' },
	{ decimal: '&#173', symbol: '­', entity: '&shy;', octal: '255', hex: '0xAD' },
	{ decimal: '&#174', symbol: '?', entity: '&reg;', octal: '256', hex: '0xAE' },
	{ decimal: '&#175', symbol: '?', entity: '&macr;', octal: '257', hex: '0xAF' },
	{ decimal: '&#176', symbol: '°', entity: '&deg;', octal: '260', hex: '0xB0' },
	{ decimal: '&#177', symbol: '?', entity: '&plusmn;', octal: '261', hex: '0xB1' },
	{ decimal: '&#178', symbol: '?', entity: '&sup2;', octal: '262', hex: '0xB2' },
	{ decimal: '&#179', symbol: '?', entity: '&sup3;', octal: '263', hex: '0xB3' },
	{ decimal: '&#180', symbol: '´', entity: '&acute;', octal: '264', hex: '0xB4' },
	{ decimal: '&#181', symbol: '?', entity: '&micro;', octal: '265', hex: '0xB5' },
	{ decimal: '&#182', symbol: '?', entity: '&para;', octal: '266', hex: '0xB6' },
	{ decimal: '&#183', symbol: '?', entity: '&middot;', octal: '267', hex: '0xB7' },
	{ decimal: '&#184', symbol: '¸', entity: '&cedil;', octal: '270', hex: '0xB8' },
	{ decimal: '&#185', symbol: '?', entity: '&sup1;', octal: '271', hex: '0xB9' },
	{ decimal: '&#186', symbol: '?', entity: '&ordm;', octal: '272', hex: '0xBA' },
	{ decimal: '&#187', symbol: '?', entity: '&raquo;', octal: '273', hex: '0xBB' },
	{ decimal: '&#188', symbol: '?', entity: '&frac14;', octal: '274', hex: '0xBC' },
	{ decimal: '&#189', symbol: '?', entity: '&frac12;', octal: '275', hex: '0xBD' },
	{ decimal: '&#190', symbol: '?', entity: '&frac34;', octal: '276', hex: '0xBE' },
	{ decimal: '&#191', symbol: '?', entity: '&iquest;', octal: '277', hex: '0xBF' },
	{ decimal: '&#192', symbol: '?', entity: '&Agrave;', octal: '300', hex: '0xC0' },
	{ decimal: '&#193', symbol: '??', entity: '&Aacute;', octal: '301', hex: '0xC1' },
	{ decimal: '&#194', symbol: '??', entity: '&Acirc;', octal: '302', hex: '0xC2' },
	{ decimal: '&#195', symbol: '?', entity: '&Atilde;', octal: '303', hex: '0xC3' },
	{ decimal: '&#196', symbol: '??', entity: '&Auml;', octal: '304', hex: '0xC4' },
	{ decimal: '&#197', symbol: '?', entity: '&Aring;', octal: '305', hex: '0xC5' },
	{ decimal: '&#198', symbol: '?', entity: '&AElig;', octal: '306', hex: '0xC6' },
	{ decimal: '&#199', symbol: '??', entity: '&Ccedil;', octal: '307', hex: '0xC7' },
	{ decimal: '&#200', symbol: '?', entity: '&Egrave;', octal: '310', hex: '0xC8' },
	{ decimal: '&#201', symbol: '??', entity: '&Eacute;', octal: '311', hex: '0xC9' },
	{ decimal: '&#202', symbol: '?', entity: '&Ecirc;', octal: '312', hex: '0xCA' },
	{ decimal: '&#203', symbol: '??', entity: '&Euml;', octal: '313', hex: '0xCB' },
	{ decimal: '&#204', symbol: '?', entity: '&Igrave;', octal: '314', hex: '0xCC' },
	{ decimal: '&#205', symbol: '??', entity: '&Iacute;', octal: '315', hex: '0xCD' },
	{ decimal: '&#206', symbol: '??', entity: '&Icirc;', octal: '316', hex: '0xCE' },
	{ decimal: '&#207', symbol: '?', entity: '&Iuml;', octal: '317', hex: '0xCF' },
	{ decimal: '&#208', symbol: '?', entity: '&ETH;', octal: '320', hex: '0xD0' },
	{ decimal: '&#209', symbol: '?', entity: '&Ntilde;', octal: '321', hex: '0xD1' },
	{ decimal: '&#210', symbol: '?', entity: '&Ograve;', octal: '322', hex: '0xD2' },
	{ decimal: '&#211', symbol: '??', entity: '&Oacute;', octal: '323', hex: '0xD3' },
	{ decimal: '&#212', symbol: '??', entity: '&Ocirc;', octal: '324', hex: '0xD4' },
	{ decimal: '&#213', symbol: '?', entity: '&Otilde;', octal: '325', hex: '0xD5' },
	{ decimal: '&#214', symbol: '??', entity: '&Ouml;', octal: '326', hex: '0xD6' },
	{ decimal: '&#215', symbol: '??', entity: '&times;', octal: '327', hex: '0xD7' },
	{ decimal: '&#216', symbol: '?', entity: '&Oslash;', octal: '330', hex: '0xD8' },
	{ decimal: '&#217', symbol: '?', entity: '&Ugrave;', octal: '331', hex: '0xD9' },
	{ decimal: '&#218', symbol: '??', entity: '&Uacute;', octal: '332', hex: '0xDA' },
	{ decimal: '&#219', symbol: '?', entity: '&Ucirc;', octal: '333', hex: '0xDB' },
	{ decimal: '&#220', symbol: '??', entity: '&Uuml;', octal: '334', hex: '0xDC' },
	{ decimal: '&#221', symbol: '??', entity: '&Yacute;', octal: '335', hex: '0xDD' },
	{ decimal: '&#222', symbol: '?', entity: '&THORN;', octal: '336', hex: '0xDE' },
	{ decimal: '&#223', symbol: '??', entity: '&szlig;', octal: '337', hex: '0xDF' },
	{ decimal: '&#224', symbol: '?', entity: '&agrave;', octal: '340', hex: '0xE0' },
	{ decimal: '&#225', symbol: 'á', entity: '&aacute;', octal: '341', hex: '0xE1' },
	{ decimal: '&#226', symbol: 'â', entity: '&acirc;', octal: '342', hex: '0xE2' },
	{ decimal: '&#227', symbol: '?', entity: '&atilde;', octal: '343', hex: '0xE3' },
	{ decimal: '&#228', symbol: 'ä', entity: '&auml;', octal: '344', hex: '0xE4' },
	{ decimal: '&#229', symbol: '?', entity: '&aring;', octal: '345', hex: '0xE5' },
	{ decimal: '&#230', symbol: '?', entity: '&aelig;', octal: '346', hex: '0xE6' },
	{ decimal: '&#231', symbol: 'ç', entity: '&ccedil;', octal: '347', hex: '0xE7' },
	{ decimal: '&#232', symbol: '?', entity: '&egrave;', octal: '350', hex: '0xE8' },
	{ decimal: '&#233', symbol: 'é', entity: '&eacute;', octal: '351', hex: '0xE9' },
	{ decimal: '&#234', symbol: '?', entity: '&ecirc;', octal: '352', hex: '0xEA' },
	{ decimal: '&#235', symbol: 'ë', entity: '&euml;', octal: '353', hex: '0xEB' },
	{ decimal: '&#236', symbol: '?', entity: '&igrave;', octal: '354', hex: '0xEC' },
	{ decimal: '&#237', symbol: 'í', entity: '&iacute;', octal: '355', hex: '0xED' },
	{ decimal: '&#238', symbol: 'î', entity: '&icirc;', octal: '356', hex: '0xEE' },
	{ decimal: '&#239', symbol: '?', entity: '&iuml;', octal: '357', hex: '0xEF' },
	{ decimal: '&#240', symbol: '?', entity: '&eth;', octal: '360', hex: '0xF0' },
	{ decimal: '&#241', symbol: '?', entity: '&ntilde;', octal: '361', hex: '0xF1' },
	{ decimal: '&#242', symbol: '?', entity: '&ograve;', octal: '362', hex: '0xF2' },
	{ decimal: '&#243', symbol: 'ó', entity: '&oacute;', octal: '363', hex: '0xF3' },
	{ decimal: '&#244', symbol: 'ô', entity: '&ocirc;', octal: '364', hex: '0xF4' },
	{ decimal: '&#245', symbol: '?', entity: '&otilde;', octal: '365', hex: '0xF5' },
	{ decimal: '&#246', symbol: 'ö', entity: '&ouml;', octal: '366', hex: '0xF6' },
	{ decimal: '&#247', symbol: '÷', entity: '&divide;', octal: '367', hex: '0xF7' },
	{ decimal: '&#248', symbol: '?', entity: '&oslash;', octal: '370', hex: '0xF8' },
	{ decimal: '&#249', symbol: '?', entity: '&ugrave;', octal: '371', hex: '0xF9' },
	{ decimal: '&#250', symbol: 'ú', entity: '&uacute;', octal: '372', hex: '0xFA' },
	{ decimal: '&#251', symbol: '?', entity: '&ucirc;', octal: '373', hex: '0xFB' },
	{ decimal: '&#252', symbol: 'ü', entity: '&uuml;', octal: '374', hex: '0xFC' },
	{ decimal: '&#253', symbol: 'ý', entity: '&yacute;', octal: '375', hex: '0xFD' },
	{ decimal: '&#254', symbol: '?', entity: '&thorn;', octal: '376', hex: '0xFE' },
	{ decimal: '&#255', symbol: '?', entity: '&yuml;', octal: '377', hex: '0xFF' }
);

var escapeCharacters = function(string) {
	var toReturn = string;
	for(charIndex=0; charIndex<characters.length; ++charIndex)
		toReturn = toReturn.replace( characters[ charIndex ].symbol, characters[ charIndex ].entity );
	return toReturn;
};

var encodeHtml = function(htmlString) {
	var encodedHtml = escape(htmlString);
	encodedHtml = encodedHtml.replace(///g,"%2F");
	encodedHtml = encodedHtml.replace(/?/g,"%3F");
	encodedHtml = encodedHtml.replace(/=/g,"%3D");
	encodedHtml = encodedHtml.replace(/&/g,"%26");
	encodedHtml = encodedHtml.replace(/@/g,"%40");
	return encodedHtml;
};

JavaScript

Les commentaires sont fermés.