J'ai essayé de convertir le texte en utf8 ou à partir de celui-ci, ce qui n'a pas semblé aider.
J'y vais :
"It’s Getting the Best of Me"
Il devrait l'être :
"It’s Getting the Best of Me"
Je reçois ces données de cette url.
J'ai essayé de convertir le texte en utf8 ou à partir de celui-ci, ce qui n'a pas semblé aider.
J'y vais :
"It’s Getting the Best of Me"
Il devrait l'être :
"It’s Getting the Best of Me"
Je reçois ces données de cette url.
Pour convertir en entités HTML :
<?php
echo mb_convert_encoding(
file_get_contents('http://www.tvrage.com/quickinfo.php?show=Surviver&ep=20x02&exact=0'),
"HTML-ENTITIES",
"UTF-8"
);
?>
Voir les documents pour mb_convert_encoding pour plus d'options d'encodage.
Une fois que vous avez obtenu le contenu du fichier que vous voulez, passez-le comme premier paramètre de la commande mb_convert_encoding()
. par exemple, $text = fgets($fp); $html = mb_convert_encoding($text, "HTML-ENTITIES", "UTF-8");
Ce doit être le meilleur article jamais écrit ! J'ai mis à jour mon charset en utf-8 et cela a réparé instantanément toutes mes pages gérées par la base de données. Merci pour cette solution rapide et géniale !
Votre contenu est correct ; le problème vient des en-têtes que le serveur envoie :
Connection:Keep-Alive
Content-Length:502
Content-Type:text/html
Date:Thu, 18 Feb 2010 20:45:32 GMT
Keep-Alive:timeout=1, max=25
Server:Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.7 with Suhosin-Patch
X-Powered-By:PHP/5.2.4-2ubuntu5.7
Content-Type doit être défini comme suit Content-type: text/plain; charset=utf-8
car cette page n'est pas en HTML et utilise l'encodage utf-8. Chromium sur Mac devine ISO-8859-1 et affiche les caractères que vous décrivez.
Si vous ne contrôlez pas le site, spécifiez l'encodage UTF-8 à la fonction que vous utilisez pour récupérer le contenu. Je ne suis pas assez familier avec PHP pour savoir comment faire exactement.
Je sais que la question a été répondue mais la mise en place de la balise meta n'a pas aidé dans mon cas et la réponse sélectionnée n'était pas assez claire, donc je voulais fournir une réponse plus simple.
Donc pour rester simple, stockez la chaîne dans une variable et traitez-la comme ceci
$TVrageGiberish = "It’s Getting the Best of Me";
$notGiberish = mb_convert_encoding($TVrageGiberish, "HTML-ENTITIES", 'UTF-8');
echo $notGiberish;
Ce qui devrait retourner ce que vous vouliez It’s Getting the Best of Me
Si vous êtes en train d'analyser quelque chose, vous pouvez effectuer la conversion tout en assignant des valeurs à une variable comme ceci, où $TVrage
est un tableau contenant toutes les valeurs, XML dans cet exemple provenant d'un flux dont la balise "Title" peut contenir des caractères spéciaux tels que ‘
o ’
.
$cleanedTitle = mb_convert_encoding($TVrage->title, "HTML-ENTITIES", 'UTF-8');
Il semble que vous utilisiez des fonctions de chaîne de caractères standard sur un caractère UTF8 (') qui n'existe pas dans la base de données de l'UE. ISO 8859-1 . Vérifiez que vous utilisez Compatible avec Unicode Paramètres et fonctions PHP. Voir aussi le multi-octet fonctions de chaîne de caractères.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
3 votes
Je constate parfois ce phénomène lorsque des personnes m'envoient des messages instantanés ou des courriels depuis un Mac. J'ai hâte de voir la solution.
0 votes
Oui, je teste le code sur un Mac aussi, en utilisant MAMP Pro.
3 votes
Si cela provient d'une table MySQL, aucune des corrections données ici n'est appropriée.