#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
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/;\|%3B/;/g ;
s/<\|<\|%3C/</g ;
s/=\|%3D/=/g ;
s/>\|>\|%3E/>/g ;
s/?\|%3F/?/g ;
s/@\|%40/@/g ;
s/[\|%5B/[/g ;
s/\\|%5C/\\/g ;
s/]\|%5D/]/g ;
s/^\|%5E/^/g ;
s/_\|%5F/_/g ;
s/`\|%60\|%80/`/g ;
s/{\|%7B/{/g ;
s/|\|%7C/|/g ;
s/}\|%7D/}/g ;
s/~\|%7E/~/g ;
s/…\|…\|…\|%85/…/g ;
s/–\|–\|%96/–/g ;
s/—\|—\|—\|%97/—/g ;
s/ \| / /g ;
s/¡\|¡\|%A1/¡/g ;
s/¢\|¢\|%A2/¢/g ;
s/£\|£\|%A3/£/g ;
s/¤\|¤\|%A4/¤/g ;
s/¥\|¥\|%A5/¥/g ;
s/¦\|¦\|&brkbar;\|%A6/¦/g ;
s/§\|§\|%A7/§/g ;
s/¨\|¨\|¨\|%A8/¨/g ;
s/©\|©\|%A9/©/g ;
s/ª\|ª\|%AA/ª/g ;
s/«\|«\|%AB/«/g ;
s/¬\|¬\|%AC/¬/g ;
s/®\|®\|%AE/®/g ;
s/¯\|¯\|&hibar;\|%AF/¯/g ;
s/°\|°\|%B0/°/g ;
s/±\|±\|%B1/±/g ;
s/²\|²\|%B2/²/g ;
s/³\|³\|%B3/³/g ;
s/´\|´\|%B4/´/g ;
s/µ\|µ\|%B5/µ/g ;
s/¶\|¶\|%B6/¶/g ;
s/·\|·\|%B7/·/g ;
s/¸\|¸\|%B8/¸/g ;
s/¹\|¹\|%B9/¹/g ;
s/º\|º\|%BA/º/g ;
s/»\|»\|%BB/»/g ;
s/¼\|¼\|%BC/¼/g ;
s/½\|½\|%BD/½/g ;
s/¾\|¾\|%BE/¾/g ;
s/¿\|¿\|%BF/¿/g ;
s/À\|À\|%C0/À/g ;
s/Á\|Á\|%C1/Á/g ;
s/Â\|Â\|%C2/Â/g ;
s/Ã\|Ã\|%C3/Ã/g ;
s/Ä\|Ä\|%C4/Ä/g ;
s/Å\|Å\|%C5/Å/g ;
s/Æ\|Æ\|%C6/Æ/g ;
s/Ç\|Ç\|%C7/Ç/g ;
s/È\|È\|%C8/È/g ;
s/É\|É\|%C9/É/g ;
s/Ê\|Ê\|%CA/Ê/g ;
s/Ë\|Ë\|%CB/Ë/g ;
s/Ì\|Ì\|%CC/Ì/g ;
s/Í\|Í\|%CD/Í/g ;
s/Î\|Î\|%CE/Î/g ;
s/Ï\|Ï\|%CF/Ï/g ;
s/Ð\|Ð\|%D0/Ð/g ;
s/Ñ\|Ñ\|%D1/Ñ/g ;
s/Ò\|Ò\|%D2/Ò/g ;
s/Ó\|Ó\|%D3/Ó/g ;
s/Ô\|Ô\|%D4/Ô/g ;
s/Õ\|Õ\|%D5/Õ/g ;
s/Ö\|Ö\|%D6/Ö/g ;
s/×\|×\|%D7/×/g ;
s/Ø\|Ø\|%D8/Ø/g ;
s/Ù\|Ù\|%D9/Ù/g ;
s/Ú\|Ú\|%DA/Ú/g ;
s/Û\|Û\|%DB/Û/g ;
s/Ü\|Ü\|%DC/Ü/g ;
s/Ý\|Ý\|%DD/Ý/g ;
s/Þ\|Þ\|%DE/Þ/g ;
s/ß\|ß\|%DF/ß/g ;
s/à\|à\|%E0/à/g ;
s/á\|á\|%E1/á/g ;
s/â\|â\|%E2/â/g ;
s/ã\|ã\|%E3/ã/g ;
s/ä\|ä\|%E4/ä/g ;
s/å\|å\|%E5/å/g ;
s/æ\|æ\|%E6/æ/g ;
s/ç\|ç\|%E7/ç/g ;
s/è\|è\|%E8/è/g ;
s/é\|é\|%E9/é/g ;
s/ê\|ê\|%EA/ê/g ;
s/ë\|ë\|%EB/ë/g ;
s/ì\|ì\|%EC/ì/g ;
s/í\|í\|%ED/í/g ;
s/î\|î\|%EE/î/g ;
s/ï\|ï\|%EF/ï/g ;
s/ð\|ð\|%F0/ð/g ;
s/ñ\|ñ\|%F1/ñ/g ;
s/ò\|ò\|%F2/ò/g ;
s/ó\|ó\|%F3/ó/g ;
s/ô\|ô\|%F4/ô/g ;
s/õ\|õ\|%F5/õ/g ;
s/ö\|ö\|%F6/ö/g ;
s/÷\|÷\|%F7/÷/g ;
s/ø\|ø\|%F8/ø/g ;
s/ù\|ù\|%F9/ù/g ;
s/ú\|ú\|%FA/ú/g ;
s/û\|û\|%FB/û/g ;
s/ü\|ü\|%FC/ü/g ;
s/ý\|ý\|%FD/ý/g ;
s/þ\|þ\|%FE/þ/g ;
s/ÿ\|ÿ\|%FF/ÿ/g ;
s/●/●/g ;
s/•\|•\|%95/•/g ;
s/€\|€/€/g ;
s/Œ\|Œ\|%8C/Œ/g ;
s/œ\|œ\|%9C/œ/g ;
s/Š\|Š\|%8A/Š/g ;
s/š\|š\|%9A/š/g ;
s/Ÿ\|Ÿ\|%9F/Ÿ/g ;
s/ƒ\|ƒ\|%83/ƒ/g ;
s/ū/ū/g ;
s/
//g ;
s/%9E\|žyy;\|ž\|ž/ž/g ;
s/%8F//g ;
s/%8E\|Ž\|Ž/Ž/g ;
s/%81//g ;
s/%8D//g ;
s/%90//g ;
s/%9D//g ;
s/eeee80;\|ż\|ż/ż/g ;
s/%tt9;\|Ż\|Ż/Ż/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/dz\|dz/dz/g ;
s/dž\|dž/dž/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/ff\|ff/ff/g ;
s/fi\|fi/fi/g ;
s/fl\|fl/fl/g ;
s/ffi\|ffi/ffi/g ;
s/ffl\|ffl/ffl/g ;
s/ſt\|ſt/ſt/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/IJ\|IJ/IJ/g ;
s/ij\|ij/ij/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/lj\|lj/lj/g ;
s/Ṁ\|Ṁ/Ṁ/g ;
s/ṁ\|ṁ/ṁ/g ;
s/Ń\|Ń/Ń/g ;
s/ń\|ń/ń/g ;
s/Ņ\|Ņ/Ņ/g ;
s/ņ\|ņ/ņ/g ;
s/Ň\|Ň/Ň/g ;
s/ň\|ň/ň/g ;
s/ʼn\|ʼn/ʼn/g ;
s/Ŋ\|Ŋ/Ŋ/g ;
s/ŋ\|ŋ/ŋ/g ;
s/nj\|nj/nj/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/⁰/⁰/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/&\|&\|%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/‘\|‘\|%91/‘/g ;
s/’\|’\|%92/’/g ;
s/‚\|‚\|%82/‚/g ;
s/“\|“\|%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 « ‘ » ou « ‘ » 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 « ’ » ou « ’ » 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 »
Ça va que le script n'est pas syndiqué
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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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 "“Hello World !”" | 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. : )
Mon site : http://mydjey.eu/
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., "
is replaced by " and < 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
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
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