Alvis-Convert
view release on metacpan or search on metacpan
lib/Alvis/Document/Encoding.pm view on Meta::CPAN
package Alvis::Document::Encoding;
use warnings;
use strict;
$Alvis::Document::Encoding::VERSION = '0.1';
use HTML::Encoding;
use Encode;
use Encode::Guess;
use Alvis::Document::Type;
#############################################################################
#
# A collection of routines for checking UTF-8 validity, guessing the
# encoding of a document etc.
#
#############################################################################
#############################################################################
#
# Global variables & constants
#
##############################################################################
my $DEBUG=0;
#
# Invalid Utf-8 codes (UTF-16 surrogates and non-valid codes)
#
my %InvalidUtf8Code=(
55296=>1, 55297=>1, 55298=>1, 55299=>1, 55300=>1, 55301=>1, 55302=>1,
55303=>1, 55304=>1, 55305=>1, 55306=>1, 55307=>1, 55308=>1, 55309=>1,
55310=>1, 55311=>1, 55312=>1, 55313=>1, 55314=>1, 55315=>1, 55316=>1,
55317=>1, 55318=>1, 55319=>1, 55320=>1, 55321=>1, 55322=>1, 55323=>1,
55324=>1, 55325=>1, 55326=>1, 55327=>1, 55328=>1, 55329=>1, 55330=>1,
55331=>1, 55332=>1, 55333=>1, 55334=>1, 55335=>1, 55336=>1, 55337=>1,
55338=>1, 55339=>1, 55340=>1, 55341=>1, 55342=>1, 55343=>1, 55344=>1,
55345=>1, 55346=>1, 55347=>1, 55348=>1, 55349=>1, 55350=>1, 55351=>1,
55352=>1, 55353=>1, 55354=>1, 55355=>1, 55356=>1, 55357=>1, 55358=>1,
55359=>1, 55360=>1, 55361=>1, 55362=>1, 55363=>1, 55364=>1, 55365=>1,
55366=>1, 55367=>1, 55368=>1, 55369=>1, 55370=>1, 55371=>1, 55372=>1,
55373=>1, 55374=>1, 55375=>1, 55376=>1, 55377=>1, 55378=>1, 55379=>1,
55380=>1, 55381=>1, 55382=>1, 55383=>1, 55384=>1, 55385=>1, 55386=>1,
55387=>1, 55388=>1, 55389=>1, 55390=>1, 55391=>1, 55392=>1, 55393=>1,
55394=>1, 55395=>1, 55396=>1, 55397=>1, 55398=>1, 55399=>1, 55400=>1,
55401=>1, 55402=>1, 55403=>1, 55404=>1, 55405=>1, 55406=>1, 55407=>1,
55408=>1, 55409=>1, 55410=>1, 55411=>1, 55412=>1, 55413=>1, 55414=>1,
55415=>1, 55416=>1, 55417=>1, 55418=>1, 55419=>1, 55420=>1, 55421=>1,
55422=>1, 55423=>1, 55424=>1, 55425=>1, 55426=>1, 55427=>1, 55428=>1,
55429=>1, 55430=>1, 55431=>1, 55432=>1, 55433=>1, 55434=>1, 55435=>1,
55436=>1, 55437=>1, 55438=>1, 55439=>1, 55440=>1, 55441=>1, 55442=>1,
55443=>1, 55444=>1, 55445=>1, 55446=>1, 55447=>1, 55448=>1, 55449=>1,
55450=>1, 55451=>1, 55452=>1, 55453=>1, 55454=>1, 55455=>1, 55456=>1,
55457=>1, 55458=>1, 55459=>1, 55460=>1, 55461=>1, 55462=>1, 55463=>1,
55464=>1, 55465=>1, 55466=>1, 55467=>1, 55468=>1, 55469=>1, 55470=>1,
55471=>1, 55472=>1, 55473=>1, 55474=>1, 55475=>1, 55476=>1, 55477=>1,
55478=>1, 55479=>1, 55480=>1, 55481=>1, 55482=>1, 55483=>1, 55484=>1,
55485=>1, 55486=>1, 55487=>1, 55488=>1, 55489=>1, 55490=>1, 55491=>1,
55492=>1, 55493=>1, 55494=>1, 55495=>1, 55496=>1, 55497=>1, 55498=>1,
55499=>1, 55500=>1, 55501=>1, 55502=>1, 55503=>1, 55504=>1, 55505=>1,
55506=>1, 55507=>1, 55508=>1, 55509=>1, 55510=>1, 55511=>1, 55512=>1,
55513=>1, 55514=>1, 55515=>1, 55516=>1, 55517=>1, 55518=>1, 55519=>1,
55520=>1, 55521=>1, 55522=>1, 55523=>1, 55524=>1, 55525=>1, 55526=>1,
55527=>1, 55528=>1, 55529=>1, 55530=>1, 55531=>1, 55532=>1, 55533=>1,
55534=>1, 55535=>1, 55536=>1, 55537=>1, 55538=>1, 55539=>1, 55540=>1,
55541=>1, 55542=>1, 55543=>1, 55544=>1, 55545=>1, 55546=>1, 55547=>1,
55548=>1, 55549=>1, 55550=>1, 55551=>1, 55552=>1, 55553=>1, 55554=>1,
55555=>1, 55556=>1, 55557=>1, 55558=>1, 55559=>1, 55560=>1, 55561=>1,
55562=>1, 55563=>1, 55564=>1, 55565=>1, 55566=>1, 55567=>1, 55568=>1,
55569=>1, 55570=>1, 55571=>1, 55572=>1, 55573=>1, 55574=>1, 55575=>1,
55576=>1, 55577=>1, 55578=>1, 55579=>1, 55580=>1, 55581=>1, 55582=>1,
55583=>1, 55584=>1, 55585=>1, 55586=>1, 55587=>1, 55588=>1, 55589=>1,
55590=>1, 55591=>1, 55592=>1, 55593=>1, 55594=>1, 55595=>1, 55596=>1,
55597=>1, 55598=>1, 55599=>1, 55600=>1, 55601=>1, 55602=>1, 55603=>1,
55604=>1, 55605=>1, 55606=>1, 55607=>1, 55608=>1, 55609=>1, 55610=>1,
55611=>1, 55612=>1, 55613=>1, 55614=>1, 55615=>1, 55616=>1, 55617=>1,
55618=>1, 55619=>1, 55620=>1, 55621=>1, 55622=>1, 55623=>1, 55624=>1,
55625=>1, 55626=>1, 55627=>1, 55628=>1, 55629=>1, 55630=>1, 55631=>1,
55632=>1, 55633=>1, 55634=>1, 55635=>1, 55636=>1, 55637=>1, 55638=>1,
55639=>1, 55640=>1, 55641=>1, 55642=>1, 55643=>1, 55644=>1, 55645=>1,
55646=>1, 55647=>1, 55648=>1, 55649=>1, 55650=>1, 55651=>1, 55652=>1,
55653=>1, 55654=>1, 55655=>1, 55656=>1, 55657=>1, 55658=>1, 55659=>1,
55660=>1, 55661=>1, 55662=>1, 55663=>1, 55664=>1, 55665=>1, 55666=>1,
55667=>1, 55668=>1, 55669=>1, 55670=>1, 55671=>1, 55672=>1, 55673=>1,
55674=>1, 55675=>1, 55676=>1, 55677=>1, 55678=>1, 55679=>1, 55680=>1,
55681=>1, 55682=>1, 55683=>1, 55684=>1, 55685=>1, 55686=>1, 55687=>1,
55688=>1, 55689=>1, 55690=>1, 55691=>1, 55692=>1, 55693=>1, 55694=>1,
55695=>1, 55696=>1, 55697=>1, 55698=>1, 55699=>1, 55700=>1, 55701=>1,
55702=>1, 55703=>1, 55704=>1, 55705=>1, 55706=>1, 55707=>1, 55708=>1,
55709=>1, 55710=>1, 55711=>1, 55712=>1, 55713=>1, 55714=>1, 55715=>1,
55716=>1, 55717=>1, 55718=>1, 55719=>1, 55720=>1, 55721=>1, 55722=>1,
55723=>1, 55724=>1, 55725=>1, 55726=>1, 55727=>1, 55728=>1, 55729=>1,
55730=>1, 55731=>1, 55732=>1, 55733=>1, 55734=>1, 55735=>1, 55736=>1,
55737=>1, 55738=>1, 55739=>1, 55740=>1, 55741=>1, 55742=>1, 55743=>1,
55744=>1, 55745=>1, 55746=>1, 55747=>1, 55748=>1, 55749=>1, 55750=>1,
55751=>1, 55752=>1, 55753=>1, 55754=>1, 55755=>1, 55756=>1, 55757=>1,
55758=>1, 55759=>1, 55760=>1, 55761=>1, 55762=>1, 55763=>1, 55764=>1,
55765=>1, 55766=>1, 55767=>1, 55768=>1, 55769=>1, 55770=>1, 55771=>1,
55772=>1, 55773=>1, 55774=>1, 55775=>1, 55776=>1, 55777=>1, 55778=>1,
55779=>1, 55780=>1, 55781=>1, 55782=>1, 55783=>1, 55784=>1, 55785=>1,
55786=>1, 55787=>1, 55788=>1, 55789=>1, 55790=>1, 55791=>1, 55792=>1,
55793=>1, 55794=>1, 55795=>1, 55796=>1, 55797=>1, 55798=>1, 55799=>1,
55800=>1, 55801=>1, 55802=>1, 55803=>1, 55804=>1, 55805=>1, 55806=>1,
55807=>1, 55808=>1, 55809=>1, 55810=>1, 55811=>1, 55812=>1, 55813=>1,
55814=>1, 55815=>1, 55816=>1, 55817=>1, 55818=>1, 55819=>1, 55820=>1,
55821=>1, 55822=>1, 55823=>1, 55824=>1, 55825=>1, 55826=>1, 55827=>1,
lib/Alvis/Document/Encoding.pm view on Meta::CPAN
55982=>1, 55983=>1, 55984=>1, 55985=>1, 55986=>1, 55987=>1, 55988=>1,
55989=>1, 55990=>1, 55991=>1, 55992=>1, 55993=>1, 55994=>1, 55995=>1,
55996=>1, 55997=>1, 55998=>1, 55999=>1, 56000=>1, 56001=>1, 56002=>1,
56003=>1, 56004=>1, 56005=>1, 56006=>1, 56007=>1, 56008=>1, 56009=>1,
56010=>1, 56011=>1, 56012=>1, 56013=>1, 56014=>1, 56015=>1, 56016=>1,
56017=>1, 56018=>1, 56019=>1, 56020=>1, 56021=>1, 56022=>1, 56023=>1,
56024=>1, 56025=>1, 56026=>1, 56027=>1, 56028=>1, 56029=>1, 56030=>1,
56031=>1, 56032=>1, 56033=>1, 56034=>1, 56035=>1, 56036=>1, 56037=>1,
56038=>1, 56039=>1, 56040=>1, 56041=>1, 56042=>1, 56043=>1, 56044=>1,
56045=>1, 56046=>1, 56047=>1, 56048=>1, 56049=>1, 56050=>1, 56051=>1,
56052=>1, 56053=>1, 56054=>1, 56055=>1, 56056=>1, 56057=>1, 56058=>1,
56059=>1, 56060=>1, 56061=>1, 56062=>1, 56063=>1, 56064=>1, 56065=>1,
56066=>1, 56067=>1, 56068=>1, 56069=>1, 56070=>1, 56071=>1, 56072=>1,
56073=>1, 56074=>1, 56075=>1, 56076=>1, 56077=>1, 56078=>1, 56079=>1,
56080=>1, 56081=>1, 56082=>1, 56083=>1, 56084=>1, 56085=>1, 56086=>1,
56087=>1, 56088=>1, 56089=>1, 56090=>1, 56091=>1, 56092=>1, 56093=>1,
56094=>1, 56095=>1, 56096=>1, 56097=>1, 56098=>1, 56099=>1, 56100=>1,
56101=>1, 56102=>1, 56103=>1, 56104=>1, 56105=>1, 56106=>1, 56107=>1,
56108=>1, 56109=>1, 56110=>1, 56111=>1, 56112=>1, 56113=>1, 56114=>1,
56115=>1, 56116=>1, 56117=>1, 56118=>1, 56119=>1, 56120=>1, 56121=>1,
56122=>1, 56123=>1, 56124=>1, 56125=>1, 56126=>1, 56127=>1, 56128=>1,
56129=>1, 56130=>1, 56131=>1, 56132=>1, 56133=>1, 56134=>1, 56135=>1,
56136=>1, 56137=>1, 56138=>1, 56139=>1, 56140=>1, 56141=>1, 56142=>1,
56143=>1, 56144=>1, 56145=>1, 56146=>1, 56147=>1, 56148=>1, 56149=>1,
56150=>1, 56151=>1, 56152=>1, 56153=>1, 56154=>1, 56155=>1, 56156=>1,
56157=>1, 56158=>1, 56159=>1, 56160=>1, 56161=>1, 56162=>1, 56163=>1,
56164=>1, 56165=>1, 56166=>1, 56167=>1, 56168=>1, 56169=>1, 56170=>1,
56171=>1, 56172=>1, 56173=>1, 56174=>1, 56175=>1, 56176=>1, 56177=>1,
56178=>1, 56179=>1, 56180=>1, 56181=>1, 56182=>1, 56183=>1, 56184=>1,
56185=>1, 56186=>1, 56187=>1, 56188=>1, 56189=>1, 56190=>1, 56191=>1,
56192=>1, 56193=>1, 56194=>1, 56195=>1, 56196=>1, 56197=>1, 56198=>1,
56199=>1, 56200=>1, 56201=>1, 56202=>1, 56203=>1, 56204=>1, 56205=>1,
56206=>1, 56207=>1, 56208=>1, 56209=>1, 56210=>1, 56211=>1, 56212=>1,
56213=>1, 56214=>1, 56215=>1, 56216=>1, 56217=>1, 56218=>1, 56219=>1,
56220=>1, 56221=>1, 56222=>1, 56223=>1, 56224=>1, 56225=>1, 56226=>1,
56227=>1, 56228=>1, 56229=>1, 56230=>1, 56231=>1, 56232=>1, 56233=>1,
56234=>1, 56235=>1, 56236=>1, 56237=>1, 56238=>1, 56239=>1, 56240=>1,
56241=>1, 56242=>1, 56243=>1, 56244=>1, 56245=>1, 56246=>1, 56247=>1,
56248=>1, 56249=>1, 56250=>1, 56251=>1, 56252=>1, 56253=>1, 56254=>1,
56255=>1, 56256=>1, 56257=>1, 56258=>1, 56259=>1, 56260=>1, 56261=>1,
56262=>1, 56263=>1, 56264=>1, 56265=>1, 56266=>1, 56267=>1, 56268=>1,
56269=>1, 56270=>1, 56271=>1, 56272=>1, 56273=>1, 56274=>1, 56275=>1,
56276=>1, 56277=>1, 56278=>1, 56279=>1, 56280=>1, 56281=>1, 56282=>1,
56283=>1, 56284=>1, 56285=>1, 56286=>1, 56287=>1, 56288=>1, 56289=>1,
56290=>1, 56291=>1, 56292=>1, 56293=>1, 56294=>1, 56295=>1, 56296=>1,
56297=>1, 56298=>1, 56299=>1, 56300=>1, 56301=>1, 56302=>1, 56303=>1,
56304=>1, 56305=>1, 56306=>1, 56307=>1, 56308=>1, 56309=>1, 56310=>1,
56311=>1, 56312=>1, 56313=>1, 56314=>1, 56315=>1, 56316=>1, 56317=>1,
56318=>1, 56319=>1, 56320=>1, 56321=>1, 56322=>1, 56323=>1, 56324=>1,
56325=>1, 56326=>1, 56327=>1, 56328=>1, 56329=>1, 56330=>1, 56331=>1,
56332=>1, 56333=>1, 56334=>1, 56335=>1, 56336=>1, 56337=>1, 56338=>1,
56339=>1, 56340=>1, 56341=>1, 56342=>1, 56343=>1, 56344=>1, 56345=>1,
56346=>1, 56347=>1, 56348=>1, 56349=>1, 56350=>1, 56351=>1, 56352=>1,
56353=>1, 56354=>1, 56355=>1, 56356=>1, 56357=>1, 56358=>1, 56359=>1,
56360=>1, 56361=>1, 56362=>1, 56363=>1, 56364=>1, 56365=>1, 56366=>1,
56367=>1, 56368=>1, 56369=>1, 56370=>1, 56371=>1, 56372=>1, 56373=>1,
56374=>1, 56375=>1, 56376=>1, 56377=>1, 56378=>1, 56379=>1, 56380=>1,
56381=>1, 56382=>1, 56383=>1, 56384=>1, 56385=>1, 56386=>1, 56387=>1,
56388=>1, 56389=>1, 56390=>1, 56391=>1, 56392=>1, 56393=>1, 56394=>1,
56395=>1, 56396=>1, 56397=>1, 56398=>1, 56399=>1, 56400=>1, 56401=>1,
56402=>1, 56403=>1, 56404=>1, 56405=>1, 56406=>1, 56407=>1, 56408=>1,
56409=>1, 56410=>1, 56411=>1, 56412=>1, 56413=>1, 56414=>1, 56415=>1,
56416=>1, 56417=>1, 56418=>1, 56419=>1, 56420=>1, 56421=>1, 56422=>1,
56423=>1, 56424=>1, 56425=>1, 56426=>1, 56427=>1, 56428=>1, 56429=>1,
56430=>1, 56431=>1, 56432=>1, 56433=>1, 56434=>1, 56435=>1, 56436=>1,
56437=>1, 56438=>1, 56439=>1, 56440=>1, 56441=>1, 56442=>1, 56443=>1,
56444=>1, 56445=>1, 56446=>1, 56447=>1, 56448=>1, 56449=>1, 56450=>1,
56451=>1, 56452=>1, 56453=>1, 56454=>1, 56455=>1, 56456=>1, 56457=>1,
56458=>1, 56459=>1, 56460=>1, 56461=>1, 56462=>1, 56463=>1, 56464=>1,
56465=>1, 56466=>1, 56467=>1, 56468=>1, 56469=>1, 56470=>1, 56471=>1,
56472=>1, 56473=>1, 56474=>1, 56475=>1, 56476=>1, 56477=>1, 56478=>1,
56479=>1, 56480=>1, 56481=>1, 56482=>1, 56483=>1, 56484=>1, 56485=>1,
56486=>1, 56487=>1, 56488=>1, 56489=>1, 56490=>1, 56491=>1, 56492=>1,
56493=>1, 56494=>1, 56495=>1, 56496=>1, 56497=>1, 56498=>1, 56499=>1,
56500=>1, 56501=>1, 56502=>1, 56503=>1, 56504=>1, 56505=>1, 56506=>1,
56507=>1, 56508=>1, 56509=>1, 56510=>1, 56511=>1, 56512=>1, 56513=>1,
56514=>1, 56515=>1, 56516=>1, 56517=>1, 56518=>1, 56519=>1, 56520=>1,
56521=>1, 56522=>1, 56523=>1, 56524=>1, 56525=>1, 56526=>1, 56527=>1,
56528=>1, 56529=>1, 56530=>1, 56531=>1, 56532=>1, 56533=>1, 56534=>1,
56535=>1, 56536=>1, 56537=>1, 56538=>1, 56539=>1, 56540=>1, 56541=>1,
56542=>1, 56543=>1, 56544=>1, 56545=>1, 56546=>1, 56547=>1, 56548=>1,
56549=>1, 56550=>1, 56551=>1, 56552=>1, 56553=>1, 56554=>1, 56555=>1,
56556=>1, 56557=>1, 56558=>1, 56559=>1, 56560=>1, 56561=>1, 56562=>1,
56563=>1, 56564=>1, 56565=>1, 56566=>1, 56567=>1, 56568=>1, 56569=>1,
56570=>1, 56571=>1, 56572=>1, 56573=>1, 56574=>1, 56575=>1, 56576=>1,
56577=>1, 56578=>1, 56579=>1, 56580=>1, 56581=>1, 56582=>1, 56583=>1,
56584=>1, 56585=>1, 56586=>1, 56587=>1, 56588=>1, 56589=>1, 56590=>1,
56591=>1, 56592=>1, 56593=>1, 56594=>1, 56595=>1, 56596=>1, 56597=>1,
56598=>1, 56599=>1, 56600=>1, 56601=>1, 56602=>1, 56603=>1, 56604=>1,
56605=>1, 56606=>1, 56607=>1, 56608=>1, 56609=>1, 56610=>1, 56611=>1,
56612=>1, 56613=>1, 56614=>1, 56615=>1, 56616=>1, 56617=>1, 56618=>1,
56619=>1, 56620=>1, 56621=>1, 56622=>1, 56623=>1, 56624=>1, 56625=>1,
56626=>1, 56627=>1, 56628=>1, 56629=>1, 56630=>1, 56631=>1, 56632=>1,
56633=>1, 56634=>1, 56635=>1, 56636=>1, 56637=>1, 56638=>1, 56639=>1,
56640=>1, 56641=>1, 56642=>1, 56643=>1, 56644=>1, 56645=>1, 56646=>1,
56647=>1, 56648=>1, 56649=>1, 56650=>1, 56651=>1, 56652=>1, 56653=>1,
56654=>1, 56655=>1, 56656=>1, 56657=>1, 56658=>1, 56659=>1, 56660=>1,
56661=>1, 56662=>1, 56663=>1, 56664=>1, 56665=>1, 56666=>1, 56667=>1,
56668=>1, 56669=>1, 56670=>1, 56671=>1, 56672=>1, 56673=>1, 56674=>1,
56675=>1, 56676=>1, 56677=>1, 56678=>1, 56679=>1, 56680=>1, 56681=>1,
56682=>1, 56683=>1, 56684=>1, 56685=>1, 56686=>1, 56687=>1, 56688=>1,
56689=>1, 56690=>1, 56691=>1, 56692=>1, 56693=>1, 56694=>1, 56695=>1,
56696=>1, 56697=>1, 56698=>1, 56699=>1, 56700=>1, 56701=>1, 56702=>1,
56703=>1, 56704=>1, 56705=>1, 56706=>1, 56707=>1, 56708=>1, 56709=>1,
56710=>1, 56711=>1, 56712=>1, 56713=>1, 56714=>1, 56715=>1, 56716=>1,
56717=>1, 56718=>1, 56719=>1, 56720=>1, 56721=>1, 56722=>1, 56723=>1,
56724=>1, 56725=>1, 56726=>1, 56727=>1, 56728=>1, 56729=>1, 56730=>1,
56731=>1, 56732=>1, 56733=>1, 56734=>1, 56735=>1, 56736=>1, 56737=>1,
56738=>1, 56739=>1, 56740=>1, 56741=>1, 56742=>1, 56743=>1, 56744=>1,
56745=>1, 56746=>1, 56747=>1, 56748=>1, 56749=>1, 56750=>1, 56751=>1,
56752=>1, 56753=>1, 56754=>1, 56755=>1, 56756=>1, 56757=>1, 56758=>1,
56759=>1, 56760=>1, 56761=>1, 56762=>1, 56763=>1, 56764=>1, 56765=>1,
56766=>1, 56767=>1, 56768=>1, 56769=>1, 56770=>1, 56771=>1, 56772=>1,
56773=>1, 56774=>1, 56775=>1, 56776=>1, 56777=>1, 56778=>1, 56779=>1,
56780=>1, 56781=>1, 56782=>1, 56783=>1, 56784=>1, 56785=>1, 56786=>1,
56787=>1, 56788=>1, 56789=>1, 56790=>1, 56791=>1, 56792=>1, 56793=>1,
56794=>1, 56795=>1, 56796=>1, 56797=>1, 56798=>1, 56799=>1, 56800=>1,
56801=>1, 56802=>1, 56803=>1, 56804=>1, 56805=>1, 56806=>1, 56807=>1,
56808=>1, 56809=>1, 56810=>1, 56811=>1, 56812=>1, 56813=>1, 56814=>1,
56815=>1, 56816=>1, 56817=>1, 56818=>1, 56819=>1, 56820=>1, 56821=>1,
56822=>1, 56823=>1, 56824=>1, 56825=>1, 56826=>1, 56827=>1, 56828=>1,
( run in 1.003 second using v1.01-cache-2.11-cpan-39bf76dae61 )