Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/06/2013, à 17:23

Hizoka

[SED] Caractères spéciaux HTML => Caractères UTF8

Bonjour,

Ayant travaillé sur la récupération d'info en bash depuis des pages web, j'ai cherché un moyen de convertir un texte comportant des Caractères spéciaux HTML en caractères normaux, mais je n'ai rien trouvé de probant.

J'ai donc créé un sed qui le fait, un gros sed.... très gros sed (560 lignes)... mais rapide quand même smile

Il gère presque toutes les entités sauf les lettres et chiffres normaux.
Alphabet Grec, monnaies, Sciences, Tous les accents... et également les Référence des encodages URL
Il manque ceux qui donnent des caractères non reconnus par une grande partie des polices.

Pour info il y a plusieurs types de codes :
Code ISO (ou Caractère ASCII) : € => ÿ , › ...

Code HTML : " , & , < ...

Référence des encodages URL : %20 => %FF

Je vous propose donc le code afin de faire gagner du temps à ceux qui en auraient besoin un jour ou l'autre.

sed 's/‘\|‘\|%91/‘/g ;
s/’\|’\|%92/’/g ;
s/‚\|‚\|%82/‚/g ;
s/“\|“\|%93/“/g ;
s/”\|”\|%94/”/g ;
s/„\|„\|%84/„/g ;
s/†\|†\|%86/†/g ;
s/‡\|‡\|%87/‡/g ;
s/‰\|‰\|%89/‰/g ;
s/♠\|♠/♠/g ;
s/♣\|♣/♣/g ;
s/♥\|♥/♥/g ;
s/♦\|♦/♦/g ;
s/◊\|◊/◊/g ;
s/⌋\|⌋/⌋/g ;
s/⌊\|⌊/⌊/g ;
s/⌉\|⌉/⌉/g ;
s/⌈\|⌈/⌈/g ;
s/↵\|↵/↵/g ;
s/↔\|↔/↔/g ;
s/›\|›\|%9B/›/g ;
s/‹\|‹\|%8B/‹/g ;
s/″\|″/″/g ;
s/′\|′/′/g ;
s/˜\|˜\|%98/˜/g ;
s/ˆ\|ˆ\|%88/ˆ/g ;
s/ϖ\|ϖ/ϖ/g ;
s/ϑ\|ϑ/ϑ/g ;
s/ϒ\|ϒ/ϒ/g ;
s/Α\|Α/Α/g ;
s/Β\|Β/Β/g ;
s/Γ\|Γ/Γ/g ;
s/Δ\|Δ/Δ/g ;
s/Ε\|Ε/Ε/g ;
s/Ζ\|Ζ/Ζ/g ;
s/Η\|Η/Η/g ;
s/Θ\|Θ/Θ/g ;
s/Ι\|Ι/Ι/g ;
s/Κ\|Κ/Κ/g ;
s/Λ\|Λ/Λ/g ;
s/Μ\|Μ/Μ/g ;
s/Ν\|Ν/Ν/g ;
s/Ξ\|Ξ/Ξ/g ;
s/Ο\|Ο/Ο/g ;
s/Π\|Π/Π/g ;
s/Ρ\|Ρ/Ρ/g ;
s/Σ\|Σ/Σ/g ;
s/Τ\|Τ/Τ/g ;
s/Υ\|Υ/Υ/g ;
s/Φ\|Φ/Φ/g ;
s/Χ\|Χ/Χ/g ;
s/Ψ\|Ψ/Ψ/g ;
s/Ω\|Ω/Ω/g ;
s/α\|α/α/g ;
s/β\|β/β/g ;
s/γ\|γ/γ/g ;
s/δ\|δ/δ/g ;
s/ε\|ε/ε/g ;
s/ζ\|ζ/ζ/g ;
s/η\|η/η/g ;
s/θ\|θ/θ/g ;
s/ι\|ι/ι/g ;
s/κ\|κ/κ/g ;
s/λ\|λ/λ/g ;
s/μ\|μ/μ/g ;
s/ν\|ν/ν/g ;
s/ξ\|ξ/ξ/g ;
s/ο\|ο/ο/g ;
s/π\|π/π/g ;
s/ρ\|ρ/ρ/g ;
s/ς\|ς/ς/g ;
s/σ\|σ/σ/g ;
s/τ\|τ/τ/g ;
s/υ\|υ/υ/g ;
s/φ\|φ/φ/g ;
s/χ\|χ/χ/g ;
s/ψ\|ψ/ψ/g ;
s/ω\|ω/ω/g ;
s/∀\|∀/∀/g ;
s/∂\|∂/∂/g ;
s/∃\|∃/∃/g ;
s/∅\|∅/∅/g ;
s/∇\|∇/∇/g ;
s/∈\|∈/∈/g ;
s/∉\|∉/∉/g ;
s/∋\|∋/∋/g ;
s/∏\|∏/∏/g ;
s/∑\|∑/∑/g ;
s/−\|−/−/g ;
s/∗\|∗/∗/g ;
s/√\|√/√/g ;
s/∝\|∝/∝/g ;
s/∞\|∞/∞/g ;
s/∠\|∠/∠/g ;
s/∧\|∧/∧/g ;
s/∨\|∨/∨/g ;
s/∩\|∩/∩/g ;
s/∪\|∪/∪/g ;
s/∫\|∫/∫/g ;
s/∴\|∴/∴/g ;
s/∼\|∼/∼/g ;
s/≅\|≅/≅/g ;
s/≈\|≈/≈/g ;
s/≠\|≠/≠/g ;
s/≡\|≡/≡/g ;
s/≤\|≤/≤/g ;
s/≥\|≥/≥/g ;
s/⊂\|⊂/⊂/g ;
s/⊃\|⊃/⊃/g ;
s/⊄\|⊄/⊄/g ;
s/⊆\|⊆/⊆/g ;
s/⊇\|⊇/⊇/g ;
s/⊕\|⊕/⊕/g ;
s/⊗\|⊗/⊗/g ;
s/⊥\|⊥/⊥/g ;
s/⋅\|⋅/⋅/g ;
s/‾\|‾/‾/g ;
s/←\|←/←/g ;
s/↑\|↑/↑/g ;
s/→\|→/→/g ;
s/↓\|↓/↓/g ;
s/™\|™\|™\|™\|%99/™/g ;
s/!\|%21/!/g ;
s/"\|"\|%22/"/g ;
s/#\|%23/#/g ;
s/$\|%24/\$/g ;
s/%\|%25/%/g ;
s/'\|'\|%27/'\''/g ;
s/(\|%28/(/g ;
s/)\|%29/)/g ;
s/*\|%2A/*/g ;
s/+\|%2B/+/g ;
s/,\|%2C/,/g ;
s/-\|–\|%2D/-/g ;
s/.\|%2E/\./g ;
s//\|⁄\|%2F/\//g ;
s/:\|%3A/:/g ;
s/&#59;\|%3B/;/g ;
s/&#60;\|&lt;\|%3C/</g ;
s/&#61;\|%3D/=/g ;
s/&#62;\|&gt;\|%3E/>/g ;
s/&#63;\|%3F/?/g ;
s/&#64;\|%40/@/g ;
s/&#91;\|%5B/[/g ;
s/&#92;\|%5C/\\/g ;
s/&#93;\|%5D/]/g ;
s/&#94;\|%5E/^/g ;
s/&#95;\|%5F/_/g ;
s/&#96;\|%60\|%80/`/g ;
s/&#123;\|%7B/{/g ;
s/&#124;\|%7C/|/g ;
s/&#125;\|%7D/}/g ;
s/&#126;\|%7E/~/g ;
s/&#133;\|&hellip;\|&#8230;\|%85/…/g ;
s/&#150;\|&ndash;\|%96/–/g ;
s/&#151;\|&mdash;\|&#8212;\|%97/—/g ;
s/&#160;\|&nbsp;/ /g ;
s/&#161;\|&iexcl;\|%A1/¡/g ;
s/&#162;\|&cent;\|%A2/¢/g ;
s/&#163;\|&pound;\|%A3/£/g ;
s/&#164;\|&curren;\|%A4/¤/g ;
s/&#165;\|&yen;\|%A5/¥/g ;
s/&#166;\|&brvbar;\|&brkbar;\|%A6/¦/g ;
s/&#167;\|&sect;\|%A7/§/g ;
s/&#168;\|&uml;\|&die;\|%A8/¨/g ;
s/&#169;\|&copy;\|%A9/©/g ;
s/&#170;\|&ordf;\|%AA/ª/g ;
s/&#171;\|&laquo;\|%AB/«/g ;
s/&#172;\|&not;\|%AC/¬/g ;
s/&#174;\|&reg;\|%AE/®/g ;
s/&#175;\|&macr;\|&hibar;\|%AF/¯/g ;
s/&#176;\|&deg;\|%B0/°/g ;
s/&#177;\|&plusmn;\|%B1/±/g ;
s/&#178;\|&sup2;\|%B2/²/g ;
s/&#179;\|&sup3;\|%B3/³/g ;
s/&#180;\|&acute;\|%B4/´/g ;
s/&#181;\|&micro;\|%B5/µ/g ;
s/&#182;\|&para;\|%B6/¶/g ;
s/&#183;\|&middot;\|%B7/·/g ;
s/&#184;\|&cedil;\|%B8/¸/g ;
s/&#185;\|&sup1;\|%B9/¹/g ;
s/&#186;\|&ordm;\|%BA/º/g ;
s/&#187;\|&raquo;\|%BB/»/g ;
s/&#188;\|&frac14;\|%BC/¼/g ;
s/&#189;\|&frac12;\|%BD/½/g ;
s/&#190;\|&frac34;\|%BE/¾/g ;
s/&#191;\|&iquest;\|%BF/¿/g ;
s/&#192;\|&Agrave;\|%C0/À/g ;
s/&#193;\|&Aacute;\|%C1/Á/g ;
s/&#194;\|&Acirc;\|%C2/Â/g ;
s/&#195;\|&Atilde;\|%C3/Ã/g ;
s/&#196;\|&Auml;\|%C4/Ä/g ;
s/&#197;\|&Aring;\|%C5/Å/g ;
s/&#198;\|&AElig;\|%C6/Æ/g ;
s/&#199;\|&Ccedil;\|%C7/Ç/g ;
s/&#200;\|&Egrave;\|%C8/È/g ;
s/&#201;\|&Eacute;\|%C9/É/g ;
s/&#202;\|&Ecirc;\|%CA/Ê/g ;
s/&#203;\|&Euml;\|%CB/Ë/g ;
s/&#204;\|&Igrave;\|%CC/Ì/g ;
s/&#205;\|&Iacute;\|%CD/Í/g ;
s/&#206;\|&Icirc;\|%CE/Î/g ;
s/&#207;\|&Iuml;\|%CF/Ï/g ;
s/&#208;\|&ETH;\|%D0/Ð/g ;
s/&#209;\|&Ntilde;\|%D1/Ñ/g ;
s/&#210;\|&Ograve;\|%D2/Ò/g ;
s/&#211;\|&Oacute;\|%D3/Ó/g ;
s/&#212;\|&Ocirc;\|%D4/Ô/g ;
s/&#213;\|&Otilde;\|%D5/Õ/g ;
s/&#214;\|&Ouml;\|%D6/Ö/g ;
s/&#215;\|&times;\|%D7/×/g ;
s/&#216;\|&Oslash;\|%D8/Ø/g ;
s/&#217;\|&Ugrave;\|%D9/Ù/g ;
s/&#218;\|&Uacute;\|%DA/Ú/g ;
s/&#219;\|&Ucirc;\|%DB/Û/g ;
s/&#220;\|&Uuml;\|%DC/Ü/g ;
s/&#221;\|&Yacute;\|%DD/Ý/g ;
s/&#222;\|&THORN;\|%DE/Þ/g ;
s/&#223;\|&szlig;\|%DF/ß/g ;
s/&#224;\|&agrave;\|%E0/à/g ;
s/&#225;\|&aacute;\|%E1/á/g ;
s/&#226;\|&acirc;\|%E2/â/g ;
s/&#227;\|&atilde;\|%E3/ã/g ;
s/&#228;\|&auml;\|%E4/ä/g ;
s/&#229;\|&aring;\|%E5/å/g ;
s/&#230;\|&aelig;\|%E6/æ/g ;
s/&#231;\|&ccedil;\|%E7/ç/g ;
s/&#232;\|&egrave;\|%E8/è/g ;
s/&#233;\|&eacute;\|%E9/é/g ;
s/&#234;\|&ecirc;\|%EA/ê/g ;
s/&#235;\|&euml;\|%EB/ë/g ;
s/&#236;\|&igrave;\|%EC/ì/g ;
s/&#237;\|&iacute;\|%ED/í/g ;
s/&#238;\|&icirc;\|%EE/î/g ;
s/&#239;\|&iuml;\|%EF/ï/g ;
s/&#240;\|&eth;\|%F0/ð/g ;
s/&#241;\|&ntilde;\|%F1/ñ/g ;
s/&#242;\|&ograve;\|%F2/ò/g ;
s/&#243;\|&oacute;\|%F3/ó/g ;
s/&#244;\|&ocirc;\|%F4/ô/g ;
s/&#245;\|&otilde;\|%F5/õ/g ;
s/&#246;\|&ouml;\|%F6/ö/g ;
s/&#247;\|&divide;\|%F7/÷/g ;
s/&#248;\|&oslash;\|%F8/ø/g ;
s/&#249;\|&ugrave;\|%F9/ù/g ;
s/&#250;\|&uacute;\|%FA/ú/g ;
s/&#251;\|&ucirc;\|%FB/û/g ;
s/&#252;\|&uuml;\|%FC/ü/g ;
s/&#253;\|&yacute;\|%FD/ý/g ;
s/&#254;\|&thorn;\|%FE/þ/g ;
s/&#255;\|&yuml;\|%FF/ÿ/g ;
s/&#9679;/●/g ;
s/&#8226;\|&#8226;\|%95/•/g ;
s/&euro;\|&#8364;/€/g ;
s/&#338;\|&OElig;\|%8C/Œ/g ;
s/&#339;\|&oelig;\|%9C/œ/g ;
s/&#352;\|&Scaron;\|%8A/Š/g ;
s/&#353;\|&scaron;\|%9A/š/g ;
s/&#376;\|&Yuml;\|%9F/Ÿ/g ;
s/&#402;\|&fnof;\|%83/ƒ/g ;
s/&#363;/ū/g ;
s/&#8232;//g ;
s/%9E\|&#382yy;\|&#x17E;\|&#382;/ž/g ;
s/%8F//g ;
s/%8E\|&#381;\|&#x17D;/Ž/g ;
s/%81//g ;
s/%8D//g ;
s/%90//g ;
s/%9D//g ;
s/&#3eeee80;\|&#x17C;\|&#380;/ż/g ;
s/&#37tt9;\|&#x17B;\|&#379;/Ż/g ;
s/&#378;\|&#x17A;/ź/g ;
s/&#377;\|&#x179;/Ź/g ;
s/&#375;\|&#x177;/ŷ/g ;
s/&#374;\|&#x176;/Ŷ/g ;
s/&#7923;\|&#x1EF3;/ỳ/g ;
s/&#7922;\|&#x1EF2;/Ỳ/g ;
s/&#7813;\|&#x1E85;/ẅ/g ;
s/&#7812;\|&#x1E84;/Ẅ/g ;
s/&#373;\|&#x175;/ŵ/g ;
s/&#372;\|&#x174;/Ŵ/g ;
s/&#7811;\|&#x1E83;/ẃ/g ;
s/&#7810;\|&#x1E82;/Ẃ/g ;
s/&#7809;\|&#x1E81;/ẁ/g ;
s/&#7808;\|&#x1E80;/Ẁ/g ;
s/&#369;\|&#x171;/ű/g ;
s/&#368;\|&#x170;/Ű/g ;
s/&#371;\|&#x173;/ų/g ;
s/&#370;\|&#x172;/Ų/g ;
s/&#365;\|&#x16D;/ŭ/g ;
s/&#364;\|&#x16C;/Ŭ/g ;
s/&#362;\|&#x16A;/Ū/g ;
s/&#367;\|&#x16F;/ů/g ;
s/&#256;\|&#x100;/Ā/g ;
s/&#257;\|&#x101;/ā/g ;
s/&#258;\|&#x102;/Ă/g ;
s/&#259;\|&#x103;/ă/g ;
s/&#260;\|&#x104;/Ą/g ;
s/&#261;\|&#x105;/ą/g ;
s/&#478;\|&#x1DE;/Ǟ/g ;
s/&#479;\|&#x1DF;/ǟ/g ;
s/&#506;\|&#x1FA;/Ǻ/g ;
s/&#507;\|&#x1FB;/ǻ/g ;
s/&#508;\|&#x1FC;/Ǽ/g ;
s/&#509;\|&#x1FD;/ǽ/g ;
s/&#7682;\|&#x1E02;/Ḃ/g ;
s/&#7683;\|&#x1E03;/ḃ/g ;
s/&#262;\|&#x106;/Ć/g ;
s/&#263;\|&#x107;/ć/g ;
s/&#268;\|&#x10C;/Č/g ;
s/&#269;\|&#x10D;/č/g ;
s/&#264;\|&#x108;/Ĉ/g ;
s/&#265;\|&#x109;/ĉ/g ;
s/&#266;\|&#x10A;/Ċ/g ;
s/&#267;\|&#x10B;/ċ/g ;
s/&#7696;\|&#x1E10;/Ḑ/g ;
s/&#7697;\|&#x1E11;/ḑ/g ;
s/&#270;\|&#x10E;/Ď/g ;
s/&#271;\|&#x10F;/ď/g ;
s/&#7690;\|&#x1E0A;/Ḋ/g ;
s/&#7691;\|&#x1E0B;/ḋ/g ;
s/&#272;\|&#x110;/Đ/g ;
s/&#273;\|&#x111;/đ/g ;
s/&#499;\|&#x1F3;/dz/g ;
s/&#454;\|&#x1C6;/dž/g ;
s/&#282;\|&#x11A;/Ě/g ;
s/&#283;\|&#x11B;/ě/g ;
s/&#274;\|&#x112;/Ē/g ;
s/&#275;\|&#x113;/ē/g ;
s/&#276;\|&#x114;/Ĕ/g ;
s/&#277;\|&#x115;/ĕ/g ;
s/&#280;\|&#x118;/Ę/g ;
s/&#281;\|&#x119;/ę/g ;
s/&#278;\|&#x116;/Ė/g ;
s/&#279;\|&#x117;/ė/g ;
s/&#439;\|&#x1B7;/Ʒ/g ;
s/&#658;\|&#x292;/ʒ/g ;
s/&#494;\|&#x1EE;/Ǯ/g ;
s/&#495;\|&#x1EF;/ǯ/g ;
s/&#7710;\|&#x1E1E;/Ḟ/g ;
s/&#7711;\|&#x1E1F;/ḟ/g ;
s/&#64256;\|&#xFB00;/ff/g ;
s/&#64257;\|&#xFB01;/fi/g ;
s/&#64258;\|&#xFB02;/fl/g ;
s/&#64259;\|&#xFB03;/ffi/g ;
s/&#64260;\|&#xFB04;/ffl/g ;
s/&#64261;\|&#xFB05;/ſt/g ;
s/&#500;\|&#x1F4;/Ǵ/g ;
s/&#501;\|&#x1F5;/ǵ/g ;
s/&#290;\|&#x122;/Ģ/g ;
s/&#291;\|&#x123;/ģ/g ;
s/&#486;\|&#x1E6;/Ǧ/g ;
s/&#487;\|&#x1E7;/ǧ/g ;
s/&#284;\|&#x11C;/Ĝ/g ;
s/&#285;\|&#x11D;/ĝ/g ;
s/&#286;\|&#x11E;/Ğ/g ;
s/&#287;\|&#x11F;/ğ/g ;
s/&#288;\|&#x120;/Ġ/g ;
s/&#289;\|&#x121;/ġ/g ;
s/&#484;\|&#x1E4;/Ǥ/g ;
s/&#485;\|&#x1E5;/ǥ/g ;
s/&#292;\|&#x124;/Ĥ/g ;
s/&#293;\|&#x125;/ĥ/g ;
s/&#294;\|&#x126;/Ħ/g ;
s/&#295;\|&#x127;/ħ/g ;
s/&#296;\|&#x128;/Ĩ/g ;
s/&#297;\|&#x129;/ĩ/g ;
s/&#298;\|&#x12A;/Ī/g ;
s/&#299;\|&#x12B;/ī/g ;
s/&#300;\|&#x12C;/Ĭ/g ;
s/&#301;\|&#x12D;/ĭ/g ;
s/&#302;\|&#x12E;/Į/g ;
s/&#303;\|&#x12F;/į/g ;
s/&#304;\|&#x130;/İ/g ;
s/&#305;\|&#x131;/ı/g ;
s/&#306;\|&#x132;/IJ/g ;
s/&#307;\|&#x133;/ij/g ;
s/&#308;\|&#x134;/Ĵ/g ;
s/&#309;\|&#x135;/ĵ/g ;
s/&#7728;\|&#x1E30;/Ḱ/g ;
s/&#7729;\|&#x1E31;/ḱ/g ;
s/&#310;\|&#x136;/Ķ/g ;
s/&#311;\|&#x137;/ķ/g ;
s/&#488;\|&#x1E8;/Ǩ/g ;
s/&#489;\|&#x1E9;/ǩ/g ;
s/&#312;\|&#x138;/ĸ/g ;
s/&#313;\|&#x139;/Ĺ/g ;
s/&#314;\|&#x13A;/ĺ/g ;
s/&#315;\|&#x13B;/Ļ/g ;
s/&#316;\|&#x13C;/ļ/g ;
s/&#317;\|&#x13D;/Ľ/g ;
s/&#318;\|&#x13E;/ľ/g ;
s/&#319;\|&#x13F;/Ŀ/g ;
s/&#320;\|&#x140;/ŀ/g ;
s/&#321;\|&#x141;/Ł/g ;
s/&#322;\|&#x142;/ł/g ;
s/&#457;\|&#x1C9;/lj/g ;
s/&#7744;\|&#x1E40;/Ṁ/g ;
s/&#7745;\|&#x1E41;/ṁ/g ;
s/&#323;\|&#x143;/Ń/g ;
s/&#324;\|&#x144;/ń/g ;
s/&#325;\|&#x145;/Ņ/g ;
s/&#326;\|&#x146;/ņ/g ;
s/&#327;\|&#x147;/Ň/g ;
s/&#328;\|&#x148;/ň/g ;
s/&#329;\|&#x149;/ʼn/g ;
s/&#330;\|&#x14A;/Ŋ/g ;
s/&#331;\|&#x14B;/ŋ/g ;
s/&#460;\|&#x1CC;/nj/g ;
s/&#332;\|&#x14C;/Ō/g ;
s/&#333;\|&#x14D;/ō/g ;
s/&#334;\|&#x14E;/Ŏ/g ;
s/&#335;\|&#x14F;/ŏ/g ;
s/&#336;\|&#x150;/Ő/g ;
s/&#337;\|&#x151;/ő/g ;
s/&#510;\|&#x1FE;/Ǿ/g ;
s/&#511;\|&#x1FF;/ǿ/g ;
s/&#7766;\|&#x1E56;/Ṗ/g ;
s/&#7767;\|&#x1E57;/ṗ/g ;
s/&#340;\|&#x154;/Ŕ/g ;
s/&#341;\|&#x155;/ŕ/g ;
s/&#342;\|&#x156;/Ŗ/g ;
s/&#343;\|&#x157;/ŗ/g ;
s/&#344;\|&#x158;/Ř/g ;
s/&#345;\|&#x159;/ř/g ;
s/&#636;\|&#x27C;/ɼ/g ;
s/&#346;\|&#x15A;/Ś/g ;
s/&#347;\|&#x15B;/ś/g ;
s/&#350;\|&#x15E;/Ş/g ;
s/&#351;\|&#x15F;/ş/g ;
s/&#348;\|&#x15C;/Ŝ/g ;
s/&#349;\|&#x15D;/ŝ/g ;
s/&#7776;\|&#x1E60;/Ṡ/g ;
s/&#7777;\|&#x1E61;/ṡ/g ;
s/&#383;\|&#x17F;/ſ/g ;
s/&#354;\|&#x162;/Ţ/g ;
s/&#355;\|&#x163;/ţ/g ;
s/&#356;\|&#x164;/Ť/g ;
s/&#357;\|&#x165;/ť/g ;
s/&#7786;\|&#x1E6A;/Ṫ/g ;
s/&#7787;\|&#x1E6B;/ṫ/g ;
s/&#358;\|&#x166;/Ŧ/g ;
s/&#359;\|&#x167;/ŧ/g ;
s/&#360;\|&#x168;/Ũ/g ;
s/&#361;\|&#x169;/ũ/g ;
s/&#366;\|&#x16E;/Ů/g ;
s/&#8208;/‐/g ;
s/&#8209;/‑/g ;
s/&#8210;/‒/g ;
s/&#8213;/―/g ;
s/&#8214;/‖/g ;
s/&#8215;/‗/g ;
s/&#8219;/‛/g ;
s/&#8223;/‟/g ;
s/&#8227;/‣/g ;
s/&#8228;/․/g ;
s/&#8229;/‥/g ;
s/&#8231;/‧/g ;
s/&#8241;/‱/g ;
s/&#8244;/‴/g ;
s/&#8245;/‵/g ;
s/&#8246;/‶/g ;
s/&#8247;/‷/g ;
s/&#8248;/‸/g ;
s/&#8251;/※/g ;
s/&#8252;/‼/g ;
s/&#8253;/‽/g ;
s/&#8256;/⁀/g ;
s/&#8257;/⁁/g ;
s/&#8258;/⁂/g ;
s/&#8259;/⁃/g ;
s/&#8260;/⁄/g ;
s/&#8261;/⁅/g ;
s/&#8262;/⁆/g ;
s/&#8263;/⁇/g ;
s/&#8264;/⁈/g ;
s/&#8265;/⁉/g ;
s/&#8266;/⁊/g ;
s/&#8267;/⁋/g ;
s/&#8268;/⁌/g ;
s/&#8269;/⁍/g ;
s/&#8270;/⁎/g ;
s/&#8271;/⁏/g ;
s/&#8272;/⁐/g ;
s/&#8273;/⁑/g ;
s/&#8274;/⁒/g ;
s/&#8275;/⁓/g ;
s/&#8276;/⁔/g ;
s/&#8277;/⁕/g ;
s/&#8278;/⁖/g ;
s/&#8279;/⁗/g ;
s/&#8280;/⁘/g ;
s/&#8281;/⁙/g ;
s/&#8282;/⁚/g ;
s/&#8283;/⁛/g ;
s/&#8284;/⁜/g ;
s/&#8285;/⁝/g ;
s/&#8286;/⁞/g ;
s/&#8292;/⁤/g ;
s/&#8293;/⁥/g ;
s/&#8294;/⁦/g ;
s/&#8295;/⁧/g ;
s/&#8296;/⁨/g ;
s/&#8297;/⁩/g ;
s/&#8304;/⁰/g ;
s/&#8305;/ⁱ/g ;
s/&#8306;/⁲/g ;
s/&#8307;/⁳/g ;
s/&#8308;/⁴/g ;
s/&#8309;/⁵/g ;
s/&#8310;/⁶/g ;
s/&#8311;/⁷/g ;
s/&#8312;/⁸/g ;
s/&#8313;/⁹/g ;
s/&#8314;/⁺/g ;
s/&#8315;/⁻/g ;
s/&#8316;/⁼/g ;
s/&#8317;/⁽/g ;
s/&#8318;/⁾/g ;
s/&#8319;/ⁿ/g ;
s/&#8320;/₀/g ;
s/&#8321;/₁/g ;
s/&#8322;/₂/g ;
s/&#8323;/₃/g ;
s/&#8324;/₄/g ;
s/&#8325;/₅/g ;
s/&#8326;/₆/g ;
s/&#8327;/₇/g ;
s/&#8328;/₈/g ;
s/&#8329;/₉/g ;
s/&#8330;/₊/g ;
s/&#8331;/₋/g ;
s/&#8332;/₌/g ;
s/&#8333;/₍/g ;
s/&#8334;/₎/g ;
s/&#8335;/₏/g ;
s/&#8336;/ₐ/g ;
s/&#8337;/ₑ/g ;
s/&#8338;/ₒ/g ;
s/&#8339;/ₓ/g ;
s/&#8340;/ₔ/g ;
s/&#8341;/ₕ/g ;
s/&#8342;/ₖ/g ;
s/&#8343;/ₗ/g ;
s/&#8344;/ₘ/g ;
s/&#8345;/ₙ/g ;
s/&#8346;/ₚ/g ;
s/&#8347;/ₛ/g ;
s/&#8348;/ₜ/g ;
s/&#8349;/₝/g ;
s/&#8350;/₞/g ;
s/&#8351;/₟/g ;
s/&#8352;/₠/g ;
s/&#8353;/₡/g ;
s/&#8354;/₢/g ;
s/&#8355;/₣/g ;
s/&#8356;/₤/g ;
s/&#8357;/₥/g ;
s/&#8358;/₦/g ;
s/&#8359;/₧/g ;
s/&#8360;/₨/g ;
s/&#8361;/₩/g ;
s/&#8362;/₪/g ;
s/&#8363;/₫/g ;
s/&#8365;/₭/g ;
s/&#38;\|&amp;\|%26/\&/g'

En le mettant dans un fichier sh de type moulinette.sh, en le faisant précéder d'un #! /bin/bash et en le rendant executable,
vous pourrez l'appeler ainsi :

./moulinette.sh <<< "Texte à corriger"
./moulinette.sh < "Fichier à corriger"
./moulinette.sh < "Fichier à corriger" > "Version corrigée"

En esperant que ca puisse servir à quelqu'un...

Hesitez pas a faire des retours.

Dernière modification par Hizoka (Le 27/06/2013, à 17:25)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#2 Le 27/06/2013, à 20:24

Watael

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

salut,

pas besoin de lancer un shell (surtout bash)

#!/bin/sed -f 

s/&lsquo;\|&#8216;\|%91/‘/g ;
s/&rsquo;\|&#8217;\|%92/’/g ;
s/&sbquo;\|&#8218;\|%82/‚/g ;
s/&ldquo;\|&#8220;\|%93/“/g ;
#...

la redirection du fichier à traiter vers le script est alors inutile.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 27/06/2013, à 22:51

LapiGNU

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

Ou alors la commande xml2asc du paquet html-xml-utils, hoplà ?


frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !

Hors ligne

#4 Le 28/06/2013, à 00:38

nesthib

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

@Hizoka : d'un point de vue algo ton script est extrêmement inefficace. En gros voici ce qu'il fait de façon imagée :

«  – Tiens, tu ne veux pas lire cette ligne et vérifier s'il y a les caractères « &lsquo; » ou « &#8216 » ou « %91 » ? Auquel cas tu les remplaces par « ‘ ».
    – oui chef !
    – ah… j'ai oublié, tu ne veux pas regarder aussi s'il y a les caractères « &rsquo; » ou « &#8217 » ou « %95 » ? Auquel cas tu les remplaces par « ’ ».
    – oui chef !
    – en fait j'en ai encore un autre… tu ne veux pas regarder si…
       […]
    – tu vas dire que je me fiche de toi… mais j'ai encore quelques substitutions à faire big_smile »

Ça va que le script n'est pas syndiqué tongue

Plus sérieusement, je pense que la meilleure approche pour ce problème est : 1– d'analyser ton texte caractère par caractère (ou plutôt motif par motif) ; 2– pour chaque motif, utiliser la correspondance dans un dictionnaire.

Une première approche :

– Lire un caractère.
– si le caractère est un « & » et qu'il y a un « ; » dans les 4/5/6 prochains caractères, alors
  – si le caractère suivant est un « # », alors
    – on part sur le code ISO avec le motif « &#…; »
    – on cherche la correspondance dans le dico ISO
  – sinon
    – on part sur le code HTML avec le motif « &…; »
    – on cherche la correspondance dans le dico HTML
  – on saute les caractères jusqu'au « ; »
– sinon
  – on affiche le caractère
et on recommence :)

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 28/06/2013, à 08:46

miniSeb

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

Oo tu t'embêtes à ce point, le soir, chez toi ??

echo "&ldquo;Hello World &#33;&rdquo;" | recode html/..

Hors ligne

#6 Le 28/06/2013, à 17:58

Hizoka

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

Watael => merci

nesthib => t'as surement raison mais ca va faire un code baucoups plus long et compliqué... en faisant comme ca on peut meme ne passer de sed et tout faire en fullbash... et ca ne prends que quelques dixiemes de seconde...

miniSeb => putain j'avais testé recode et ca me donnait pas ca...
j'avais trouvé recode utf8..h
c'est sur que c'est plus simple...
par contre il ne pige pas les soucis de %XX

bon bah je vais tester un peu plus recode alors...

merci  pour vos reponses


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#7 Le 28/06/2013, à 21:42

LapiGNU

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

Je voudrais pas avoir l'air d'insister, mais

Ayant travaillé sur la récupération d'info en bash depuis des pages web

html-xml-utils sert exactement à ça ...


frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !

Hors ligne

#8 Le 29/06/2013, à 12:02

mydjey

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

Intéressant html-xml-utils et recode. : )

Hors ligne

#9 Le 29/06/2013, à 18:12

Hizoka

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

html-xml-utils => ca marche comment ça ?
et ca fait quoi plus precisement ?

merci


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#10 Le 29/06/2013, à 20:19

Hizoka

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

Un soucis avec recode

echo "ceci est términé" | recode html/..
ceci est términé

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#11 Le 29/06/2013, à 23:22

LapiGNU

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

html-xml-utils-*.tar.gz
    A number of simple utilities for manipulating HTML and XML files.
    See INSTALL for generic installation instructions.
    Get the source at: http://www.w3.org/Tools/HTML-XML-utils/

C'est la collection d'outils du W3C pour extraire des infos de documents XML et HTML. Entre autres, on trouve hxunent :

NAME
       hxunent - replace HTML predefined character entities by UTF-8

SYNOPSIS
       hxunent [ -b ] [ -f ] [ file ]

DESCRIPTION
       The  hxunent command reads the file (or standard input) and copies it to standard output with &-entities by their equivalent character (encoded as UTF-8). E.g., &quot;
       is replaced by " and &lt; is replaced by <.

Et tout un tas de trucs pour extraire d'un document HTML tous les éléments en gras se trouvant dans la seconde ligne d'un tableau de classe "tablo" ... ce genre de trucs.

Hoplà !


frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !

Hors ligne

#12 Le 02/07/2013, à 00:45

Hizoka

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

hxunent => semble bien marcher pour corriger les caracteres

sinon pour la recuperation d'info je pige pas grand chose...
avec l'adresse :

http://www.lecture-en-ligne.com/index.php?page=liste&ordre=titre&p=1

je veux recuperer :

                                        <tr onmouseover="this.className='tr1';" onmouseout="this.className='tr2';" class="tr2">
                                <td class="td"><a href="manga/ayakashihisen/" class="infoImages">Ayakashi Hisen</a></td>
                                <td class="td">Romance, Surnaturel (Shôjo)</td>
                                <td class="td">171579 fois</td>
                                <td class="td">8.55</td>
                                <td class="td">8</td>
                                <td>
                                        <a href="ayakashihisen/8/0/0/1.html">Ch. 8</a>, 25/12/12, 14:10              </td>
                        </tr>

j'ai tester hxextract avec differentes options en lien avec tr... mais rien, aucun retour...

Dernière modification par Hizoka (Le 02/07/2013, à 00:58)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#13 Le 02/07/2013, à 11:38

LapiGNU

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

Salut Hizoka,

essaye :

curl -s "http://www.lecture-en-ligne.com/index.php?page=liste&ordre=titre&p=1" | hxnormalize -l 240 -x | hxselect -s '\n' -c ".tr2"

Curl récupère la page, hxnormalize formate le code pour s'assurer qu'il soit aussi "propre" que possible, hxselect en extrait tous les éléments de classe tr2 (les lignes du tableau).

Pour hxselect, le -s '\n' ça rend en général les choses plus faciles pour mouliner derrière, le -c c'est comme tu veux.

Pour cibler ensuite une ligne précise, il va falloir réfléchir un peu, hoplà ...

Edit : en fait, pour cibler une ligne, un petit coup de sed suffit. Comme qui dirait, sed, c'est bien (j'me comprends ...) hoplà !

Dernière modification par LapiGNU (Le 02/07/2013, à 12:06)


frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !

Hors ligne

#14 Le 02/07/2013, à 12:05

miniSeb

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

Hizoka a écrit :

Un soucis avec recode

echo "ceci est términé" | recode html/..
ceci est términé

Normal, vu le fonctionnement de recode. Il faut rediriger sur un autre pipe genre

echo "ceci est términé" | recode html/..| recode utf8..latin1

Mais ça devient du bricolage.

Je me pencherai sur html-xml-utils, ça semble intéressant !

Hors ligne

#15 Le 02/07/2013, à 19:17

Hizoka

Re : [SED] Caractères spéciaux HTML => Caractères UTF8

LapiGNU => merci smile
je vais travailler ca du coup

miniSeb => ca devient dommage de faire ca, mais en effet, hxunent marche pas mal


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne