89 votes

Sortie PHP affichant des petits losanges noirs avec un point d'interrogation

Je suis en train d'écrire un programme php qui tire des données d'une base de données. Je ne sais pas si je peux me permettre de le faire, mais je ne sais pas non plus si je peux me permettre de le faire, CARACTÈRE DE REMPLACEMENT (je suppose qu'il s'agit d'un texte Microsoft Word).

Comment puis-je utiliser php pour supprimer ces caractères ?

7voto

DropHit Points 132

J'ai choisi de supprimer ces caractères de la chaîne en faisant ceci -

ini_set('mbstring.substitute_character', "none"); 
$text= mb_convert_encoding($text, 'UTF-8', 'UTF-8');

7voto

Harshil Kaneria Points 133

Il suffit de coller ce code en commençant par le haut de la page.

<?php
header("Content-Type: text/html; charset=ISO-8859-1");
?>

5voto

Daniel Cassidy Points 7143

D'après votre description du problème, les données de votre base de données sont très certainement codées en tant que Windows-1252 et il est presque certain que votre page est servie en tant que ISO-8859-1 . Ces deux jeux de caractères sont équivalents, sauf que Windows-1252 comporte 16 caractères supplémentaires qui ne sont pas présents dans ISO-8859-1, y compris les guillemets à gauche et à droite.

En supposant que mon analyse soit correcte, la solution la plus simple est de servir votre page sous Windows-1252. Cela fonctionnera parce que tous les caractères qui sont dans ISO-8859-1 sont aussi dans Windows-1252. En PHP, vous pouvez modifier l'encodage comme suit :

header('Content-Type: text/html; charset=Windows-1252');

Cependant, vous devriez vraiment vérifier le codage des caractères que vous utilisez dans vos fichiers HTML et le contenu de votre base de données, et veiller à être cohérent, ou convertir correctement si ce n'est pas possible.

4voto

rk_programmer Points 56

Ajoutez cette fonction à vos variables utf8_encode($votre variable) ;

3voto

Vishal P Gothi Points 125

Essayez ceci, s'il vous plaît

mb_substr($description, 0, 490, "UTF-8") ;

Prograide.com

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.

Powered by:

X