home *** CD-ROM | disk | FTP | other *** search
/ HTML - Publishing on the Internet / html_cdrom.iso / tools / html / linux / check / entify.pl < prev    next >
Perl Script  |  1995-02-18  |  3KB  |  60 lines

  1. #!/usr/local/bin/perl
  2. #entify.pl: Change Latin-1 high alphabetics to HTML entities for 7-bit safety.
  3. #
  4. # Typical use:
  5. #
  6. #   perl entify.pl infile.8bit > outfile.html
  7. #
  8. #   If you have Latin 1 characters in a URL, they should actually be escaped
  9. # using the %-hex-digits convention; the program ignores this consideration.
  10. #
  11. # Copyright H. Churchyard 1995 -- freely redistributable.
  12. # Version 1.0 12/30/94 -- Converted to perl.  Included in htmlchek 4.0 release.
  13. # Version 1.1 2/17/95 -- Eliminated warning, may not have been appropriate in
  14. # all circumstances.
  15. #
  16. eval "exec /usr/local/bin/perl -S $0 $*"
  17.     if $running_under_some_shell; # this emulates #! processing on NIH machines.
  18. $, = ' ';               # set output field separator
  19. $\ = "\n";              # set output record separator
  20. $enty{"\300"} = "À"; $enty{"\301"} = "Á";
  21. $enty{"\302"} = "Â"; $enty{"\303"} = "Ã"; $enty{"\304"} = "Ä";
  22. $enty{"\305"} = "Å"; $enty{"\306"} = "Æ";
  23. $enty{"\307"} = "Ç"; $enty{"\310"} = "È";
  24. $enty{"\311"} = "É"; $enty{"\312"} = "Ê"; $enty{"\313"} = "Ë";
  25. $enty{"\314"} = "Ì"; $enty{"\315"} = "Í";
  26. $enty{"\316"} = "Î"; $enty{"\317"} = "Ï"; $enty{"\320"} = "Ð";
  27. $enty{"\321"} = "Ñ"; $enty{"\322"} = "Ò";
  28. $enty{"\323"} = "Ó"; $enty{"\324"} = "Ô";
  29. $enty{"\325"} = "Õ"; $enty{"\326"} = "Ö";
  30. $enty{"\330"} = "Ø"; $enty{"\331"} = "Ù";
  31. $enty{"\332"} = "Ú"; $enty{"\333"} = "Û"; $enty{"\334"} = "Ü";
  32. $enty{"\335"} = "Ý"; $enty{"\336"} = "Þ";
  33. $enty{"\337"} = "ß"; $enty{"\340"} = "à";
  34. $enty{"\341"} = "á"; $enty{"\342"} = "â";
  35. $enty{"\343"} = "ã"; $enty{"\344"} = "ä"; $enty{"\345"} = "å";
  36. $enty{"\346"} = "æ"; $enty{"\347"} = "ç";
  37. $enty{"\350"} = "è"; $enty{"\351"} = "é";
  38. $enty{"\352"} = "ê"; $enty{"\353"} = "ë"; $enty{"\354"} = "ì";
  39. $enty{"\355"} = "í"; $enty{"\356"} = "î"; $enty{"\357"} = "ï";
  40. $enty{"\360"} = "ð"; $enty{"\361"} = "ñ"; $enty{"\362"} = "ò";
  41. $enty{"\363"} = "ó"; $enty{"\364"} = "ô";
  42. $enty{"\365"} = "õ"; $enty{"\366"} = "ö";
  43. $enty{"\370"} = "ø"; $enty{"\371"} = "ù";
  44. $enty{"\372"} = "ú"; $enty{"\373"} = "û"; $enty{"\374"} = "ü";
  45. $enty{"\375"} = "ý"; $enty{"\376"} = "þ"; $enty{"\377"} = "ÿ";
  46. $enty{"\256"} = "®"; $enty{"\251"} = "©";
  47. #
  48. # Main
  49. #
  50. $stuperlRS = $/;
  51. while (<>) {
  52.     if ($_ =~ /$stuperlRS$/o) { # strip record separator, allow for last line to
  53.         chop;}                  # be unterminated.
  54.     if ($_ =~ /[\300-\377]/) {
  55.         foreach $X (keys %enty) {
  56.             if ($_ =~ $X) {
  57.                 $s_ = $enty{$X}; $_ =~ s/$X/$s_/g;}}}
  58.     print $_;}
  59. ##EOF
  60.