Désaccentuer ! - commentaires Désaccentuer<small class="fine d-inline"> </small>! 2010-10-29T15:50:40Z https://contrib.spip.net/Desaccentuer#comment436262 2010-10-29T15:50:40Z <p>mais pourquoi vouloir faire si compliqué<small class="fine d-inline"> </small>?</p> <p><code class="spip_code spip_code_inline" dir="ltr">[(#VAL{bipéàçœñbip}|translitteration)] </code> affichera bien <code class="spip_code spip_code_inline" dir="ltr"> bipeacoenbip </code></p> Désaccentuer<small class="fine d-inline"> </small>! 2010-10-29T12:19:51Z https://contrib.spip.net/Desaccentuer#comment436248 2010-10-29T12:19:51Z <p>C'est mieux ainsi<small class="fine d-inline"> </small>!</p> <p>function enlever_accents($texte, $charset='utf-8')<i><br class="autobr"> if (!(is_string($texte)))</i></p> <p> return («<small class="fine d-inline"> </small>»)<small class="fine d-inline"> </small>;<br class="autobr"> $texte = htmlentities($texte, ENT_NOQUOTES, $charset)<small class="fine d-inline"> </small>;</p> <p> $texte = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)~;#', '\1', $texte)<small class="fine d-inline"> </small>;<br class="autobr"> $texte = preg_replace('#\&([A-za-z]<i>2</i>)(?:lig)~;#', '\1', $texte)<small class="fine d-inline"> </small>; // pour les ligatures e.g. 'œ'<br class="autobr"> $texte = preg_replace('#\&[^<small class="fine d-inline"> </small>;]+~;#', '', $texte)<small class="fine d-inline"> </small>; // supprime les autres caractères</p> <p> return $texte<small class="fine d-inline"> </small>;<br class="autobr"> </p> Désaccentuer —> champ META 2006-02-15T09:44:05Z https://contrib.spip.net/Desaccentuer#comment385422 2006-02-15T09:44:05Z <p>Super.</p> <p>Je l'ai utilisée dans le champ META pour « traduire » le #TITRE dans plusieurs versions d'écriture (avec ou sans accent) ce qui dope un peu plus les recherches.</p> <p>ex : sans cette contrib, #TITRE : « L'écollège »<br class="manualbr">les recherches google ne trouvent pas le site par la recherche « ecollege »...</p> <p>Mais avec la contrib passée dans le champ META, on obtient :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><meta name="description" content="[(#TITRE|textebrut|enlever_accents)]" /></code></pre></div> <p>voir exemple : site du <a href="http://www.inattendu.org/grape" class="spip_out" rel='nofollow external'>GRAPE</a></p> > Désaccentuer<small class="fine d-inline"> </small>! 2003-12-31T16:27:16Z https://contrib.spip.net/Desaccentuer#comment5125 2003-12-31T16:27:16Z <p>Salut,</p> <p>il semblerait qu'il y ait une petite erreur, il y a dans la fonction plus de <i>a sans accent</i> que de <i>a avec accent</i>, de ce fait le <i>è</i> se transforme en <i>c</i><small class="fine d-inline"> </small>!</p> <p>Mais sinon ca marche bien :)</p> > Désaccentuer<small class="fine d-inline"> </small>! 2003-07-21T13:24:34Z https://contrib.spip.net/Desaccentuer#comment2763 2003-07-21T13:24:34Z <p>J'ai fait fausse route<small class="fine d-inline"> </small>; ayant eu les problèmes cités plus haut, et induit en erreur par une recherche Google qui m'a sorti un problème disparu depuis longtemps, j'ai cru que c'était une question Mac versus PC, ce qui effectivement eût été monstrueux et invraisemblable s'agissant de web moderne. Ensuite ayant hâte de tester sur un site parfaitement maîtrisé comme celui de SPIP, j'ai posté *avant* d'investiguer, mea culpa, mea maxima culpa.</p> <p>Pour me faire pardonner, je dis vive SPIP et l'UTF-8.</p> > Désaccentuer<small class="fine d-inline"> </small>! 2003-07-21T13:12:42Z https://contrib.spip.net/Desaccentuer#comment2762 2003-07-21T13:12:42Z <p>Merci, tout va bien depuis que j'ai pu mis UTF-8 comme charset par défaut dans SPIP 1.6 à la place de iso-8859-1.</p> <p>Je m'étais égaré, parce ce que, pour une raison obscure, le charset n'était pas le même en mise à jour (iso-8859-1) et en utilisation (UTF-8).<br class="autobr"> Maintenant c'est UTF-8 dans les deux cas.</p> <p>Merci et mille excuses<small class="fine d-inline"> </small>; peut-on retirer une partie de ce que j'ai dit, car sinon, la recherche sur Google peut en induire d'autres en erreurs, comme je l'ai été moi-même<small class="fine d-inline"> </small>?</p> > Désaccentuer<small class="fine d-inline"> </small>! 2003-07-21T12:29:10Z https://contrib.spip.net/Desaccentuer#comment2760 2003-07-21T12:29:10Z <p>Les anciennes versions était en ISO-8859-1 mais spip1.6 pour gérer le multilingue est passé en UTF-8 par défaut.</p> > Désaccentuer<small class="fine d-inline"> </small>! 2003-07-21T12:15:53Z https://contrib.spip.net/Desaccentuer#comment2759 2003-07-21T12:15:53Z <p>Qu'entends tu par là<small class="fine d-inline"> </small>? Je suis sur mac et je ne vois pas de quels problèmes tu parles là<small class="fine d-inline"> </small>?</p> > Désaccentuer<small class="fine d-inline"> </small>! 2003-07-21T11:56:52Z https://contrib.spip.net/Desaccentuer#comment2758 2003-07-21T11:56:52Z <p>Je vois à peu près le problème.</p> <p>Étant fortement orienté UFT-8, j'ai un annuaire LDAP qui ne connaît que l'UTF-8. Pour avoir la paix, c'est le codage par défaut d'Apache, mais ça ne suffit pas, c'est aussi celui de PHP.</p> <p>default_charset = « utf-8 »</p> <p>J'ai plusieurs serveurs virtuels mais il n'existe qu'un php.ini, d'où l'obligation d'être 100% utf-8.</p> <p>Rien ne marche actuellement parce que en saisie, c'est SPIP qui impose ISO-8859-1, mais en utilisation du site, Apache (ou PHP) prétend que c'est de l'UTF8.</p> <p>La bonne solution serait que SPIP sache parler plus fort que Apache et PHP en imposant le code ISO-8859-1 comme il sait le faire dans la partie administration.</p> <p>La très bonne solution serait d'offrir le choix d'UTF-8 à l'install.</p> <p>Comme palliatif, je peux exporter (en XML par phpmyadmin), convertir de ISO-8859-1 en UTF-8, puis importer.</p> <p>Y-a-t-il plus simple<small class="fine d-inline"> </small>?</p> <p>Ph.L.</p> > Désaccentuer<small class="fine d-inline"> </small>! 2003-07-21T11:26:02Z https://contrib.spip.net/Desaccentuer#comment2757 2003-07-21T11:26:02Z <p>C'est le contraire qu'il faut se demander, comment se fait-il que des caractères soient codées de la même manière sur des plateformes différentes<small class="fine d-inline"> </small>?</p> <p>C'est le résultat d'efforts (trop tardifs) de normalisation. Les Français (par exemple l'Académie Française) ont été nuls dans ce domaine, c'est donc le foutoir intégral.</p> <p>Il y a trois grandes étapes de normalisation :</p> <p>- ASCII (American Standard etc.) uniquement américain code à 7 bits numéros 0 à 127, il n'est pas en vigueur partout mais presque (IBM fait exception avec l'EBCDIC)</p> <p>- Cork (en Irlande) ISO-8859-1 ou Latin-1 (devenu ISO-8859-15 avec l'Euro et œ) codes sur 8 bits, mais les logiciels ne sont pas encore tous à cette norme, quant à l'énorme stock de textes codés de façon non standard (par DOS ou MAC, ou IBM), qui se soucie de les convertir<small class="fine d-inline"> </small>?</p> <p>- Unicode qu'on retient chez nous en utf-8. Unicode vise toutes les langues du monde<small class="fine d-inline"> </small>! utf-8 est un usage raisonnable d'Unicode qui consomme 1 seul octet pour les caractères ASCII (0 à 127) et 2 ou plus pour tous les autres.<br class="autobr"> C'est UTF-8 qui est retenu comme standard universel, il faut absolument s'y mettre.</p> <p>- En outre différents systèmes ont prévu des codages de transfert (exemples HTML, MIME)</p> <p>En attendant SPIP est inaccessible pour moi (MAC OSX Mozilla) et c'est absolument énorme, c'est sûrement le seul site au monde inaccessible à des Français utilisant des Mac, et c'est un produit français. Comment se fait-il que tous les sites du monde entier savent faire avec les problèmes d'accents et pas SPIP<small class="fine d-inline"> </small>? Je cherche.</p> <p>Ph. Lelédy</p>