1 64 65 package com.jcorporate.expresso.ext.report; 66 67 68 import java.io.FilterReader ; 69 import java.io.IOException ; 70 import java.io.PushbackReader ; 71 import java.io.Reader ; 72 import java.util.HashMap ; 73 import java.util.Map ; 74 75 82 83 public class DocBookFilterReader extends FilterReader { 84 85 88 private char[] lookahead = new char[32]; 89 90 93 private char[] pushahead = new char[32]; 94 private int pushaheadOffset = 0; 95 private int pushaheadLen = 0; 96 97 100 private static Map entities = new HashMap (); 101 102 static { 103 loadEntites(entities); 104 } 105 106 111 public DocBookFilterReader(Reader in) { 112 super(new PushbackReader (in, 32)); 113 } 114 115 118 public int read() throws IOException { 119 int ch; 120 121 if (pushaheadLen > 0) { 123 ch = pushahead[pushaheadOffset++]; 124 pushaheadLen--; 125 } else { 126 do { 127 ch = in.read(); 128 } while (ch == 0); 129 130 if (ch == '&') { 131 133 int ch2 = -1; 134 int n = 0; 135 lookahead[n++] = (char) ch; 136 137 while (n < lookahead.length) { 138 ch2 = in.read(); 139 if (ch2 == -1) { 140 break; 141 } 142 143 lookahead[n++] = (char) ch2; 144 145 if (!Character.isLetterOrDigit((char) ch2)) { 146 break; 147 } 148 } 149 150 if (ch2 == ';') { 151 ch2 = lookupEntityToChar(n); 153 154 if (ch2 == -1) 155 { 157 ((PushbackReader ) in).unread(lookahead, 1, n - 1); 158 } else 159 { 161 ch = ch2; 162 } 163 } else { 164 ((PushbackReader ) in).unread(lookahead, 1, n - 1); 166 } 167 } 168 } 169 return ch; 170 } 171 172 175 public int read(char[] cbuf, int off, int len) throws IOException { 176 int nread = 0; 177 for (int i = off; nread < len; i++) { 178 int c = read(); 179 if (c == -1) { 180 break; 181 } 182 cbuf[i] = (char) c; 183 nread++; 184 } 185 if (nread == 0) { 186 return -1; 187 } 188 return nread; 189 } 190 191 198 private int lookupEntityToChar(int nlook) { 199 if (lookupEntity(nlook)) { 200 if (pushaheadLen > 0) { 201 pushaheadLen--; 202 return pushahead[pushaheadOffset++]; 203 } 204 } 205 return -1; 206 } 207 208 215 private boolean lookupEntity(int nlook) { 216 String lookaheadStr = new String (lookahead, 0, nlook); 217 String entity = (String ) entities.get(lookaheadStr); 218 if (entity != null) { 219 entity.getChars(0, entity.length(), pushahead, 0); 220 pushaheadOffset = 0; 221 pushaheadLen = entity.length(); 222 return true; 223 } 224 return false; 225 } 226 227 private static void loadEntites(Map entities) { 228 entities.put("½", "½"); 229 entities.put(" ", " "); 230 entities.put(" ", " "); 231 entities.put(" ", " "); 232 entities.put(" ", " "); 233 entities.put(" ", " "); 234 entities.put(" ", " "); 235 entities.put(" ", " "); 236 entities.put(" ", " "); 237 entities.put("—", "—"); 238 entities.put("–", "–"); 239 entities.put("‐", "‐"); 240 entities.put("␣", "␣"); 241 entities.put("…", "…"); 242 entities.put("‥", "‥"); 243 entities.put("⅓", "⅓"); 244 entities.put("⅔", "⅔"); 245 entities.put("⅕", "⅕"); 246 entities.put("⅖", "⅖"); 247 entities.put("⅗", "⅗"); 248 entities.put("⅘", "⅘"); 249 entities.put("⅙", "⅙"); 250 entities.put("⅚", "⅚"); 251 entities.put("℅", "℅"); 252 entities.put("█", "█"); 253 entities.put("▀", "▀"); 254 entities.put("▄", "▄"); 255 entities.put("░", "░"); 256 entities.put("▒", "▒"); 257 entities.put("▓", "▓"); 258 entities.put("▮", "▮"); 259 entities.put("○", "○"); 260 entities.put("□", "□"); 261 entities.put("▭", "▭"); 262 entities.put("▵", "▵"); 263 entities.put("▿", "▿"); 264 entities.put("☆", "⋆"); 265 entities.put("•", "•"); 266 entities.put("▪", "▪"); 267 entities.put("▴", "▴"); 268 entities.put("▾", "▾"); 269 entities.put("◂", "◂"); 270 entities.put("▸", "▸"); 271 entities.put("♣", "♣"); 272 entities.put("♦", "♦"); 273 entities.put("♥", "♥"); 274 entities.put("♠", "♠"); 275 entities.put("✠", "✠"); 276 entities.put("†", "†"); 277 entities.put("‡", "‡"); 278 entities.put("✓", "✓"); 279 entities.put("✗", "✗"); 280 entities.put("♯", "♯"); 281 entities.put("♭", "♭"); 282 entities.put("♂", "♂"); 283 entities.put("♀", "♀"); 284 entities.put("☎", "☎"); 285 entities.put("⌕", "⌕"); 286 entities.put("℗", "℗"); 287 entities.put("⁁", "⁁"); 288 entities.put("‚", "‚"); 289 entities.put("„", "„"); 290 entities.put("ff", "ff"); 291 entities.put("fi", "fi"); 292 entities.put("ffi", "ffi"); 293 entities.put("ffl", "ffl"); 294 entities.put("fl", "fl"); 295 entities.put("…", "…"); 296 entities.put("”", "“"); 297 entities.put("’", "‘"); 298 entities.put("⋮", "⋮"); 299 entities.put("⁃", "⁃"); 300 entities.put("◊", "◊"); 301 entities.put("⧫", "✦"); 302 entities.put("◃", "◃"); 303 entities.put("▹", "▹"); 304 entities.put("★", "★"); 305 entities.put("♮", "♮"); 306 entities.put("℞", "℞"); 307 entities.put("✶", "✶"); 308 entities.put("⌖", "⌖"); 309 entities.put("⌍", "⌍"); 310 entities.put("⌌", "⌌"); 311 entities.put("⌏", "⌏"); 312 entities.put("⌎", "⌎"); 313 entities.put("&agr;", "α"); 314 entities.put("&Agr;", "Α"); 315 entities.put("&bgr;", "β"); 316 entities.put("&Bgr;", "Β"); 317 entities.put("&ggr;", "γ"); 318 entities.put("&Ggr;", "Γ"); 319 entities.put("&dgr;", "δ"); 320 entities.put("&Dgr;", "Δ"); 321 entities.put("&egr;", "ε"); 322 entities.put("&Egr;", "Ε"); 323 entities.put("&zgr;", "ζ"); 324 entities.put("&Zgr;", "Ζ"); 325 entities.put("&eegr;", "η"); 326 entities.put("&EEgr;", "Η"); 327 entities.put("&thgr;", "θ"); 328 entities.put("&THgr;", "Θ"); 329 entities.put("&igr;", "ι"); 330 entities.put("&Igr;", "Ι"); 331 entities.put("&kgr;", "κ"); 332 entities.put("&Kgr;", "Κ"); 333 entities.put("&lgr;", "λ"); 334 entities.put("&Lgr;", "Λ"); 335 entities.put("&mgr;", "μ"); 336 entities.put("&Mgr;", "Μ"); 337 entities.put("&ngr;", "ν"); 338 entities.put("&Ngr;", "Ν"); 339 entities.put("&xgr;", "ξ"); 340 entities.put("&Xgr;", "Ξ"); 341 entities.put("&ogr;", "ο"); 342 entities.put("&Ogr;", "Ο"); 343 entities.put("&pgr;", "π"); 344 entities.put("&Pgr;", "Π"); 345 entities.put("&rgr;", "ρ"); 346 entities.put("&Rgr;", "Ρ"); 347 entities.put("&sgr;", "σ"); 348 entities.put("&Sgr;", "Σ"); 349 entities.put("&sfgr;", "ς"); 350 entities.put("&tgr;", "τ"); 351 entities.put("&Tgr;", "Τ"); 352 entities.put("&ugr;", "υ"); 353 entities.put("&Ugr;", "Υ"); 354 entities.put("&phgr;", "φ"); 355 entities.put("&PHgr;", "Φ"); 356 entities.put("&khgr;", "χ"); 357 entities.put("&KHgr;", "Χ"); 358 entities.put("&psgr;", "ψ"); 359 entities.put("&PSgr;", "Ψ"); 360 entities.put("&ohgr;", "ω"); 361 entities.put("&OHgr;", "Ω"); 362 entities.put("&aacgr;", "ά"); 363 entities.put("&Aacgr;", "Ά"); 364 entities.put("&eacgr;", "έ"); 365 entities.put("&Eacgr;", "Έ"); 366 entities.put("&eeacgr;", "ή"); 367 entities.put("&EEacgr;", "Ή"); 368 entities.put("&idigr;", "ϊ"); 369 entities.put("&Idigr;", "Ϊ"); 370 entities.put("&iacgr;", "ί"); 371 entities.put("&Iacgr;", "Ί"); 372 entities.put("&idiagr;", "ΐ"); 373 entities.put("&oacgr;", "ό"); 374 entities.put("&Oacgr;", "Ό"); 375 entities.put("&udigr;", "ϋ"); 376 entities.put("&Udigr;", "Ϋ"); 377 entities.put("&uacgr;", "ύ"); 378 entities.put("&Uacgr;", "Ύ"); 379 entities.put("&udiagr;", "ΰ"); 380 entities.put("&ohacgr;", "ώ"); 381 entities.put("&OHacgr;", "Ώ"); 382 entities.put("α", "α"); 383 entities.put("β", "β"); 384 entities.put("γ", "γ"); 385 entities.put("Γ", "Γ"); 386 entities.put("ϝ", "Ϝ"); 387 entities.put("δ", "δ"); 388 entities.put("Δ", "Δ"); 389 entities.put("ε", "∊"); 390 entities.put("ϵ", "ε"); 391 entities.put("&epsis;", "∊"); 392 entities.put("ζ", "ζ"); 393 entities.put("η", "η"); 394 entities.put("&thetas;", "θ"); 395 entities.put("Θ", "Θ"); 396 entities.put("ϑ", "ϑ"); 397 entities.put("ι", "ι"); 398 entities.put("κ", "κ"); 399 entities.put("ϰ", "ϰ"); 400 entities.put("λ", "λ"); 401 entities.put("Λ", "Λ"); 402 entities.put("μ", "μ"); 403 entities.put("ν", "ν"); 404 entities.put("ξ", "ξ"); 405 entities.put("Ξ", "Ξ"); 406 entities.put("π", "π"); 407 entities.put("ϖ", "ϖ"); 408 entities.put("Π", "Π"); 409 entities.put("ρ", "ρ"); 410 entities.put("ϱ", "ϱ"); 411 entities.put("σ", "σ"); 412 entities.put("Σ", "Σ"); 413 entities.put("ς", "ς"); 414 entities.put("τ", "τ"); 415 entities.put("υ", "υ"); 416 entities.put("ϒ", "ϒ"); 417 entities.put("&phis;", "φ"); 418 entities.put("Φ", "Φ"); 419 entities.put("ϕ", "ϕ"); 420 entities.put("χ", "χ"); 421 entities.put("ψ", "ψ"); 422 entities.put("Ψ", "Ψ"); 423 entities.put("ω", "ω"); 424 entities.put("Ω", "Ω"); 425 entities.put("&b.alpha;", "α"); 426 entities.put("&b.beta;", "β"); 427 entities.put("&b.gamma;", "γ"); 428 entities.put("&b.Gamma;", "Γ"); 429 entities.put("&b.gammad;", "Ϝ"); 430 entities.put("&b.delta;", "δ"); 431 entities.put("&b.Delta;", "Δ"); 432 entities.put("&b.epsi;", "ε"); 433 entities.put("&b.epsiv;", "ε"); 434 entities.put("&b.epsis;", "ε"); 435 entities.put("&b.zeta;", "ζ"); 436 entities.put("&b.eta;", "η"); 437 entities.put("&b.thetas;", "θ"); 438 entities.put("&b.Theta;", "Θ"); 439 entities.put("&b.thetav;", "ϑ"); 440 entities.put("&b.iota;", "ι"); 441 entities.put("&b.kappa;", "κ"); 442 entities.put("&b.kappav;", "ϰ"); 443 entities.put("&b.lambda;", "λ"); 444 entities.put("&b.Lambda;", "Λ"); 445 entities.put("&b.mu;", "μ"); 446 entities.put("&b.nu;", "ν"); 447 entities.put("&b.xi;", "ξ"); 448 entities.put("&b.Xi;", "Ξ"); 449 entities.put("&b.pi;", "π"); 450 entities.put("&b.Pi;", "Π"); 451 entities.put("&b.piv;", "ϖ"); 452 entities.put("&b.rho;", "ρ"); 453 entities.put("&b.rhov;", "ϱ"); 454 entities.put("&b.sigma;", "σ"); 455 entities.put("&b.Sigma;", "Σ"); 456 entities.put("&b.sigmav;", "ς"); 457 entities.put("&b.tau;", "τ"); 458 entities.put("&b.upsi;", "υ"); 459 entities.put("&b.Upsi;", "ϒ"); 460 entities.put("&b.phis;", "φ"); 461 entities.put("&b.Phi;", "Φ"); 462 entities.put("&b.phiv;", "ϕ"); 463 entities.put("&b.chi;", "χ"); 464 entities.put("&b.psi;", "ψ"); 465 entities.put("&b.Psi;", "Ψ"); 466 entities.put("&b.omega;", "ω"); 467 entities.put("&b.Omega;", "Ω"); 468 entities.put("á", "á"); 469 entities.put("Á", "Á"); 470 entities.put("â", "â"); 471 entities.put("Â", "Â"); 472 entities.put("à", "à"); 473 entities.put("À", "À"); 474 entities.put("å", "å"); 475 entities.put("Å", "Å"); 476 entities.put("ã", "ã"); 477 entities.put("Ã", "Ã"); 478 entities.put("ä", "ä"); 479 entities.put("Ä", "Ä"); 480 entities.put("æ", "æ"); 481 entities.put("Æ", "Æ"); 482 entities.put("ç", "ç"); 483 entities.put("Ç", "Ç"); 484 entities.put("ð", "Ð"); 485 entities.put("Ð", "ð"); 486 entities.put("é", "é"); 487 entities.put("É", "É"); 488 entities.put("ê", "ê"); 489 entities.put("Ê", "Ê"); 490 entities.put("è", "è"); 491 entities.put("È", "È"); 492 entities.put("ë", "ë"); 493 entities.put("Ë", "Ë"); 494 entities.put("í", "í"); 495 entities.put("Í", "Í"); 496 entities.put("î", "î"); 497 entities.put("Î", "Î"); 498 entities.put("ì", "ì"); 499 entities.put("Ì", "Ì"); 500 entities.put("ï", "ï"); 501 entities.put("Ï", "Ï"); 502 entities.put("ñ", "ñ"); 503 entities.put("Ñ", "Ñ"); 504 entities.put("ó", "ó"); 505 entities.put("Ó", "Ó"); 506 entities.put("ô", "ô"); 507 entities.put("Ô", "Ô"); 508 entities.put("ò", "ò"); 509 entities.put("Ò", "Ò"); 510 entities.put("ø", "⊘"); 511 entities.put("Ø", "Ø"); 512 entities.put("õ", "õ"); 513 entities.put("Õ", "Õ"); 514 entities.put("ö", "ö"); 515 entities.put("Ö", "Ö"); 516 entities.put("ß", "ß"); 517 entities.put("þ", "þ"); 518 entities.put("Þ", "Þ"); 519 entities.put("ú", "ú"); 520 entities.put("Ú", "Ú"); 521 entities.put("û", "Û"); 522 entities.put("Û", "û"); 523 entities.put("ù", "ù"); 524 entities.put("Ù", "Ù"); 525 entities.put("ü", "ü"); 526 entities.put("Ü", "Ü"); 527 entities.put("ý", "ý"); 528 entities.put("Ý", "Ý"); 529 entities.put("ÿ", "ÿ"); 530 entities.put("ă", "ă"); 531 entities.put("Ă", "Ă"); 532 entities.put("ā", "ā"); 533 entities.put("Ā", "Ā"); 534 entities.put("ą", "ą"); 535 entities.put("Ą", "Ą"); 536 entities.put("ć", "ć"); 537 entities.put("Ć", "Ć"); 538 entities.put("č", "č"); 539 entities.put("Č", "Č"); 540 entities.put("ĉ", "ĉ"); 541 entities.put("Ĉ", "Ĉ"); 542 entities.put("ċ", "⋅"); 543 entities.put("Ċ", "Ċ"); 544 entities.put("ď", "ď"); 545 entities.put("Ď", "Ď"); 546 entities.put("đ", "đ"); 547 entities.put("Đ", "Đ"); 548 entities.put("ě", "ě"); 549 entities.put("Ě", "Ě"); 550 entities.put("ė", "ė"); 551 entities.put("Ė", "Ė"); 552 entities.put("ē", "ē"); 553 entities.put("Ē", "Ē"); 554 entities.put("ę", "ę"); 555 entities.put("Ę", "Ę"); 556 entities.put("ǵ", "ǵ"); 557 entities.put("ğ", "ğ"); 558 entities.put("Ğ", "Ğ"); 559 entities.put("Ģ", "Ģ"); 560 entities.put("ĝ", "ĝ"); 561 entities.put("Ĝ", "Ĝ"); 562 entities.put("ġ", "ġ"); 563 entities.put("Ġ", "Ġ"); 564 entities.put("ĥ", "ĥ"); 565 entities.put("Ĥ", "Ĥ"); 566 entities.put("ħ", "ħ"); 567 entities.put("Ħ", "Ħ"); 568 entities.put("İ", "İ"); 569 entities.put("Ī", "Ī"); 570 entities.put("ī", "ī"); 571 entities.put("ij", "ij"); 572 entities.put("IJ", "IJ"); 573 entities.put("ı", "ı"); 574 entities.put("į", "į"); 575 entities.put("Į", "Į"); 576 entities.put("ĩ", "ĩ"); 577 entities.put("Ĩ", "Ĩ"); 578 entities.put("ĵ", "ĵ"); 579 entities.put("Ĵ", "Ĵ"); 580 entities.put("ķ", "ķ"); 581 entities.put("Ķ", "Ķ"); 582 entities.put("ĸ", "ĸ"); 583 entities.put("ĺ", "ĺ"); 584 entities.put("Ĺ", "Ĺ"); 585 entities.put("ľ", "ľ"); 586 entities.put("Ľ", "Ľ"); 587 entities.put("ļ", "ļ"); 588 entities.put("Ļ", "Ļ"); 589 entities.put("ŀ", "ŀ"); 590 entities.put("Ŀ", "Ŀ"); 591 entities.put("ł", "ł"); 592 entities.put("Ł", "Ł"); 593 entities.put("ń", "ń"); 594 entities.put("Ń", "Ń"); 595 entities.put("ŋ", "ŋ"); 596 entities.put("Ŋ", "Ŋ"); 597 entities.put("ʼn", "ʼn"); 598 entities.put("ň", "ň"); 599 entities.put("Ň", "Ň"); 600 entities.put("ņ", "ņ"); 601 entities.put("Ņ", "Ņ"); 602 entities.put("ő", "ő"); 603 entities.put("Ő", "Ő"); 604 entities.put("Ō", "Ō"); 605 entities.put("ō", "ō"); 606 entities.put("œ", "œ"); 607 entities.put("Œ", "Œ"); 608 entities.put("ŕ", "ŕ"); 609 entities.put("Ŕ", "Ŕ"); 610 entities.put("ř", "ř"); 611 entities.put("Ř", "Ř"); 612 entities.put("ŗ", "ŗ"); 613 entities.put("Ŗ", "Ŗ"); 614 entities.put("ś", "ś"); 615 entities.put("Ś", "Ś"); 616 entities.put("š", "š"); 617 entities.put("Š", "Š"); 618 entities.put("ş", "ş"); 619 entities.put("Ş", "Ş"); 620 entities.put("ŝ", "ŝ"); 621 entities.put("Ŝ", "Ŝ"); 622 entities.put("ť", "ť"); 623 entities.put("Ť", "Ť"); 624 entities.put("ţ", "ţ"); 625 entities.put("Ţ", "Ţ"); 626 entities.put("ŧ", "ŧ"); 627 entities.put("Ŧ", "Ŧ"); 628 entities.put("ŭ", "ŭ"); 629 entities.put("Ŭ", "Ŭ"); 630 entities.put("ű", "ű"); 631 entities.put("Ű", "Ű"); 632 entities.put("ū", "ū"); 633 entities.put("Ū", "Ū"); 634 entities.put("ų", "ų"); 635 entities.put("Ų", "Ų"); 636 entities.put("ů", "ů"); 637 entities.put("Ů", "Ů"); 638 entities.put("ũ", "ũ"); 639 entities.put("Ũ", "Ũ"); 640 entities.put("ŵ", "ŵ"); 641 entities.put("Ŵ", "Ŵ"); 642 entities.put("ŷ", "ŷ"); 643 entities.put("Ŷ", "Ŷ"); 644 entities.put("Ÿ", "Ÿ"); 645 entities.put("ź", "ź"); 646 entities.put("Ź", "Ź"); 647 entities.put("ž", "ž"); 648 entities.put("Ž", "Ž"); 649 entities.put("ż", "ż"); 650 entities.put("Ż", "Ż"); 651 entities.put("ℵ", "ℵ"); 652 entities.put("∧", "∧"); 653 entities.put("&ang90;", "∟"); 654 entities.put("∢", "∢"); 655 entities.put("≈", "≈"); 656 entities.put("∵", "∵"); 657 entities.put("⊥", "⊥"); 658 entities.put("∩", "∩"); 659 entities.put("≅", "≅"); 660 entities.put("∮", "∮"); 661 entities.put("∪", "∪"); 662 entities.put("≡", "≡"); 663 entities.put("∃", "∃"); 664 entities.put("∀", "∀"); 665 entities.put("ƒ", "ƒ"); 666 entities.put("≥", "≥"); 667 entities.put("⇔", ""); 668 entities.put("∞", "∞"); 669 entities.put("∫", "∫"); 670 entities.put("∈", "∊"); 671 entities.put("⟨", "〈"); 672 entities.put("⇐", "⇐"); 673 entities.put("≤", "≤"); 674 entities.put("−", "−"); 675 entities.put("∓", "∓"); 676 entities.put("∇", "∇"); 677 entities.put("≠", "≠"); 678 entities.put("∋", "∍"); 679 entities.put("∨", "∨"); 680 entities.put("∥", "∥"); 681 entities.put("∂", "∂"); 682 entities.put("‰", "‰"); 683 entities.put("⊥", "⊥"); 684 entities.put("′", "′"); 685 entities.put("″", "″"); 686 entities.put("∝", "∝"); 687 entities.put("√", "√"); 688 entities.put("⟩", "〉"); 689 entities.put("⇒", "⇒"); 690 entities.put("∼", "∼"); 691 entities.put("≃", "≃"); 692 entities.put("□", "□"); 693 entities.put("⊂", "⊂"); 694 entities.put("⊆", "⊆"); 695 entities.put("⊃", "⊃"); 696 entities.put("⊇", "⊇"); 697 entities.put("∴", "∴"); 698 entities.put("‖", "‖"); 699 entities.put("Å", "Å"); 700 entities.put("ℬ", "ℬ"); 701 entities.put("∘", "∘"); 702 entities.put("¨", "̈"); 703 entities.put("⃜", "⃜"); 704 entities.put("ℋ", "ℋ"); 705 entities.put("ℒ", "ℒ"); 706 entities.put("∗", "∗"); 707 entities.put("∉", "∉"); 708 entities.put("ℴ", "ℴ"); 709 entities.put("ℳ", "ℳ"); 710 entities.put("⃛", "⃛"); 711 entities.put("‴", "‴"); 712 entities.put("≙", "≙"); 713 714 entities.put("½", "½"); 715 entities.put("½", "½"); 716 entities.put("¼", "¼"); 717 entities.put("¾", "¾"); 718 entities.put("⅛", "⅛"); 719 entities.put("⅜", "⅜"); 720 entities.put("⅝", "⅝"); 721 entities.put("⅞", "⅞"); 722 entities.put("¹", "¹"); 723 entities.put("²", "²"); 724 entities.put("³", "³"); 725 entities.put("+", "+"); 726 entities.put("±", "±"); 727 entities.put("<", "<"); 728 entities.put("=", "="); 729 entities.put(">", ">"); 730 entities.put("÷", "÷"); 731 entities.put("×", "×"); 732 entities.put("¤", "¤"); 733 entities.put("£", "£"); 734 entities.put("$", "$"); 735 entities.put("¢", "¢"); 736 entities.put("¥", "¥"); 737 entities.put("#", "#"); 738 entities.put("%", "%"); 739 entities.put("&", "&"); 740 entities.put("*", "∗"); 741 entities.put("@", "@"); 742 entities.put("[", "["); 743 entities.put("\", "\"); 744 entities.put("]", "]"); 745 entities.put("{", "{"); 746 entities.put("―", "―"); 747 entities.put("|", "|"); 748 entities.put("}", "}"); 749 entities.put("µ", "µ"); 750 entities.put("Ω", "Ω"); 751 entities.put("°", "°"); 752 entities.put("º", "º"); 753 entities.put("ª", "ª"); 754 entities.put("§", "§"); 755 entities.put("¶", "¶"); 756 entities.put("·", "·"); 757 entities.put("←", "←"); 758 entities.put("→", "→"); 759 entities.put("↑", "↑"); 760 entities.put("↓", "↓"); 761 entities.put("©", "©"); 762 entities.put("®", "®"); 763 entities.put("™", "™"); 764 entities.put("¦", "¦"); 765 entities.put("¬", "¬"); 766 entities.put("♪", "♩"); 767 entities.put("!", "!"); 768 entities.put("¡", "¡"); 769 entities.put(""", """); 770 entities.put("'", "'"); 771 entities.put("(", "("); 772 entities.put(")", ")"); 773 entities.put(",", ","); 774 entities.put("_", "_"); 775 entities.put("‐", ""); 776 entities.put(".", "."); 777 entities.put("/", "/"); 778 entities.put(":", ":"); 779 entities.put(";", ";"); 780 entities.put("?", "?"); 781 entities.put("¿", "¿"); 782 entities.put("«", "«"); 783 entities.put("»", "»"); 784 entities.put("‘", "‘"); 785 entities.put("’", "’"); 786 entities.put("“", "“"); 787 entities.put("”", "”"); 788 entities.put(" ", " "); 789 entities.put("­", "­"); 790 791 1285 } 1286} 1287 | Popular Tags |