J'utilise DOMDocument pour manipuler/modifier le code HTML avant qu'il ne soit édité sur la page. Ceci est seulement un fragment html, pas une page complète. Mon problème initial était que tout le personnage français était foiré, ce que je pouvais corriger après quelques essais et erreurs. Maintenant, il semble qu'un seul problème demeure: «le personnage se transforme en? .Problèmes d'encodage de DOMDocument/caractères transformés
Le code:
<?php
$dom = new DOMDocument('1.0','utf-8');
$dom->loadHTML(utf8_decode($row->text));
//Some pretty basic modification here, not even related to text
//reinsert HTML, and make sure to remove DOCTYPE, html and body that get added auto.
$row->text = utf8_encode(preg_replace('/^<!DOCTYPE.+?>/', '', str_replace(array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $dom->saveHTML())));
?>
Je sais que ça se salit avec le Décode/encode UTF8, mais c'est la seule façon que je pouvais le faire fonctionner jusqu'à présent. Voici une chaîne exemple:
Entrée: Sans Doute Parcé Qu'il Vient d'Atteindre juin Date Determinante sortie Dans fils du cheminement
:? Sans Doute parce qu il Vient d date de juin de Atteindre d & EACUTE ; terminante dans son spectaculaire cheminement
Si je trouve plus de détails, je les ajouterai. Merci pour votre temps et votre soutien!
Quel jeu de caractères est '$ row-> text'?Si c'est UTF-8 directement (En supposant que cela provienne de MySQL, vous devez définir le jeu de caractères de connexion sur UTF8) alors vous n'avez pas besoin des fonctions 'utf8_ (en | de) code'. Forcer le jeu de caractères à UTF8 et tous vos problèmes * devraient * disparaître (en supposant que c'est de là que '$ row' vient) ... – ircmaxell
L'entrée provient d'un CMS, tous mis à utf8 (chaîne de caractères, base de données, etc.)). Mais il semble que mon problème n'est pas ce que je pense que c'était. J'ai découvert que la chaîne qui vient de moi est tout OK, et le pc de mes collègues aussi. Le problème se produit uniquement lorsque la chaîne est entrée par le PC de mon client. Je parierais qu'elle colle le texte d'un mot ou d'un autre et que quelque chose d'étrange se passe alors. Je vais devoir creuser ça. – Kyrotomia
Ahhh ... Alors peut-être vérifier les caractères UCS-2LE (UTF-16LE) (Depuis c'est le défaut pour Word IIRC) ... – ircmaxell