1 16 package com.blandware.atleap.common.parsers.html; 17 18 import java.util.Hashtable ; 19 20 29 public class Entities { 30 static final Hashtable decoder = new Hashtable (300); 31 static final String [] encoder = new String [0x100]; 32 33 static final String decode(String entity) { 34 if ( entity.charAt(entity.length() - 1) == ';' ) { 36 entity = entity.substring(0, entity.length() - 1); 37 } 38 if ( entity.charAt(1) == '#' ) { 39 int start = 2; 40 int radix = 10; 41 if ( entity.charAt(2) == 'X' || entity.charAt(2) == 'x' ) { 42 start++; 43 radix = 16; 44 } 45 Character c = 46 new Character ((char) Integer.parseInt(entity.substring(start), radix)); 47 return c.toString(); 48 } else { 49 String s = (String ) decoder.get(entity); 50 if ( s != null ) { 51 return s; 52 } else { 53 return ""; 54 } 55 } 56 } 57 58 64 public static final String encode(String s) { 65 int length = s.length(); 66 StringBuffer buffer = new StringBuffer (length * 2); 67 for ( int i = 0; i < length; i++ ) { 68 char c = s.charAt(i); 69 int j = (int) c; 70 if ( j < 0x100 && encoder[j] != null ) { 71 buffer.append(encoder[j]); buffer.append(';'); 73 } else if ( j < 0x80 ) { 74 buffer.append(c); } else { 76 buffer.append("&#"); buffer.append((int) c); 78 buffer.append(';'); 79 } 80 } 81 return buffer.toString(); 82 } 83 84 static final void add(String entity, int value) { 85 decoder.put(entity, (new Character ((char) value)).toString()); 86 if ( value < 0x100 ) { 87 encoder[value] = entity; 88 } 89 } 90 91 static { 92 add(" ", 160); 93 add("¡", 161); 94 add("¢", 162); 95 add("£", 163); 96 add("¤", 164); 97 add("¥", 165); 98 add("¦", 166); 99 add("§", 167); 100 add("¨", 168); 101 add("©", 169); 102 add("ª", 170); 103 add("«", 171); 104 add("¬", 172); 105 add("­", 173); 106 add("®", 174); 107 add("¯", 175); 108 add("°", 176); 109 add("±", 177); 110 add("²", 178); 111 add("³", 179); 112 add("´", 180); 113 add("µ", 181); 114 add("¶", 182); 115 add("·", 183); 116 add("¸", 184); 117 add("¹", 185); 118 add("º", 186); 119 add("»", 187); 120 add("¼", 188); 121 add("½", 189); 122 add("¾", 190); 123 add("¿", 191); 124 add("À", 192); 125 add("Á", 193); 126 add("Â", 194); 127 add("Ã", 195); 128 add("Ä", 196); 129 add("Å", 197); 130 add("Æ", 198); 131 add("Ç", 199); 132 add("È", 200); 133 add("É", 201); 134 add("Ê", 202); 135 add("Ë", 203); 136 add("Ì", 204); 137 add("Í", 205); 138 add("Î", 206); 139 add("Ï", 207); 140 add("Ð", 208); 141 add("Ñ", 209); 142 add("Ò", 210); 143 add("Ó", 211); 144 add("Ô", 212); 145 add("Õ", 213); 146 add("Ö", 214); 147 add("×", 215); 148 add("Ø", 216); 149 add("Ù", 217); 150 add("Ú", 218); 151 add("Û", 219); 152 add("Ü", 220); 153 add("Ý", 221); 154 add("Þ", 222); 155 add("ß", 223); 156 add("à", 224); 157 add("á", 225); 158 add("â", 226); 159 add("ã", 227); 160 add("ä", 228); 161 add("å", 229); 162 add("æ", 230); 163 add("ç", 231); 164 add("è", 232); 165 add("é", 233); 166 add("ê", 234); 167 add("ë", 235); 168 add("ì", 236); 169 add("í", 237); 170 add("î", 238); 171 add("ï", 239); 172 add("ð", 240); 173 add("ñ", 241); 174 add("ò", 242); 175 add("ó", 243); 176 add("ô", 244); 177 add("õ", 245); 178 add("ö", 246); 179 add("÷", 247); 180 add("ø", 248); 181 add("ù", 249); 182 add("ú", 250); 183 add("û", 251); 184 add("ü", 252); 185 add("ý", 253); 186 add("þ", 254); 187 add("ÿ", 255); 188 add("&fnof", 402); 189 add("&Alpha", 913); 190 add("&Beta", 914); 191 add("&Gamma", 915); 192 add("&Delta", 916); 193 add("&Epsilon", 917); 194 add("&Zeta", 918); 195 add("&Eta", 919); 196 add("&Theta", 920); 197 add("&Iota", 921); 198 add("&Kappa", 922); 199 add("&Lambda", 923); 200 add("&Mu", 924); 201 add("&Nu", 925); 202 add("&Xi", 926); 203 add("&Omicron", 927); 204 add("&Pi", 928); 205 add("&Rho", 929); 206 add("&Sigma", 931); 207 add("&Tau", 932); 208 add("&Upsilon", 933); 209 add("&Phi", 934); 210 add("&Chi", 935); 211 add("&Psi", 936); 212 add("&Omega", 937); 213 add("&alpha", 945); 214 add("&beta", 946); 215 add("&gamma", 947); 216 add("&delta", 948); 217 add("&epsilon", 949); 218 add("&zeta", 950); 219 add("&eta", 951); 220 add("&theta", 952); 221 add("&iota", 953); 222 add("&kappa", 954); 223 add("&lambda", 955); 224 add("&mu", 956); 225 add("&nu", 957); 226 add("&xi", 958); 227 add("&omicron", 959); 228 add("&pi", 960); 229 add("&rho", 961); 230 add("&sigmaf", 962); 231 add("&sigma", 963); 232 add("&tau", 964); 233 add("&upsilon", 965); 234 add("&phi", 966); 235 add("&chi", 967); 236 add("&psi", 968); 237 add("&omega", 969); 238 add("&thetasym", 977); 239 add("&upsih", 978); 240 add("&piv", 982); 241 add("&bull", 8226); 242 add("&hellip", 8230); 243 add("&prime", 8242); 244 add("&Prime", 8243); 245 add("&oline", 8254); 246 add("&frasl", 8260); 247 add("&weierp", 8472); 248 add("&image", 8465); 249 add("&real", 8476); 250 add("&trade", 8482); 251 add("&alefsym", 8501); 252 add("&larr", 8592); 253 add("&uarr", 8593); 254 add("&rarr", 8594); 255 add("&darr", 8595); 256 add("&harr", 8596); 257 add("&crarr", 8629); 258 add("&lArr", 8656); 259 add("&uArr", 8657); 260 add("&rArr", 8658); 261 add("&dArr", 8659); 262 add("&hArr", 8660); 263 add("&forall", 8704); 264 add("&part", 8706); 265 add("&exist", 8707); 266 add("&empty", 8709); 267 add("&nabla", 8711); 268 add("&isin", 8712); 269 add("¬in", 8713); 270 add("&ni", 8715); 271 add("&prod", 8719); 272 add("&sum", 8721); 273 add("&minus", 8722); 274 add("&lowast", 8727); 275 add("&radic", 8730); 276 add("&prop", 8733); 277 add("&infin", 8734); 278 add("&ang", 8736); 279 add("&and", 8743); 280 add("&or", 8744); 281 add("&cap", 8745); 282 add("&cup", 8746); 283 add("&int", 8747); 284 add("&there4", 8756); 285 add("&sim", 8764); 286 add("&cong", 8773); 287 add("&asymp", 8776); 288 add("&ne", 8800); 289 add("&equiv", 8801); 290 add("&le", 8804); 291 add("&ge", 8805); 292 add("&sub", 8834); 293 add("&sup", 8835); 294 add("&nsub", 8836); 295 add("&sube", 8838); 296 add("&supe", 8839); 297 add("&oplus", 8853); 298 add("&otimes", 8855); 299 add("&perp", 8869); 300 add("&sdot", 8901); 301 add("&lceil", 8968); 302 add("&rceil", 8969); 303 add("&lfloor", 8970); 304 add("&rfloor", 8971); 305 add("&lang", 9001); 306 add("&rang", 9002); 307 add("&loz", 9674); 308 add("&spades", 9824); 309 add("&clubs", 9827); 310 add("&hearts", 9829); 311 add("&diams", 9830); 312 add(""", 34); 313 add("&", 38); 314 add("<", 60); 315 add(">", 62); 316 add("&OElig", 338); 317 add("&oelig", 339); 318 add("&Scaron", 352); 319 add("&scaron", 353); 320 add("&Yuml", 376); 321 add("&circ", 710); 322 add("&tilde", 732); 323 add("&ensp", 8194); 324 add("&emsp", 8195); 325 add("&thinsp", 8201); 326 add("&zwnj", 8204); 327 add("&zwj", 8205); 328 add("&lrm", 8206); 329 add("&rlm", 8207); 330 add("&ndash", 8211); 331 add("&mdash", 8212); 332 add("&lsquo", 8216); 333 add("&rsquo", 8217); 334 add("&sbquo", 8218); 335 add("&ldquo", 8220); 336 add("&rdquo", 8221); 337 add("&bdquo", 8222); 338 add("&dagger", 8224); 339 add("&Dagger", 8225); 340 add("&permil", 8240); 341 add("&lsaquo", 8249); 342 add("&rsaquo", 8250); 343 add("&euro", 8364); 344 345 } 346 } 347 | Popular Tags |