2010-11-11 8 views
0

J'ai un caractère étrange qui apparaît sur mon flux RSS. Sur Firefox, il ressemble à une boîte avec quatre chiffres dans chaque coin, dans certains cas, 0 - 0 - 9 - 4, 0 - 0 - 9 - 2.Caractère étrange dans le document XML

Apparaissent là où les guillemets intelligents devraient être. Je connais le diamant noir avec le point d'interrogation, mais il s'agit d'un nouveau.

+0

c'est un encodage UTF. Vérifiez le type d'encodage sur le document XML. – jcolebrand

Répondre

3

Le 0-0-9-4 indique que le caractère était 0x0094, qui est un caractère UTF-16 non affecté. Tout ce qui produit le flux consiste à insérer des caractères pour lesquels votre navigateur n'a pas de mappage de police, ou bien le codage de caractères spécifié dans l'en-tête ne correspond pas au contenu du flux.

+0

Ah, merci pour l'aide. – dgig

0

Ah, d'accord. Vous avez pointé mon dans la bonne direction. Ce qui était à venir était des entités Windows. Les gens mettent des choses dans notre base de données dans une série complexe d'étapes de conversion de Word, à InDesign, à GoLive (oui, c'est douloureux). Quoi qu'il en soit, ce que la base de données faisait ressortir était ces entités comme '& # 146;', ce qui signifie quelque chose que je devine à Windows, mais rien à mon navigateur, en ISO-8859-1 ou UTF-8, donc aucune modification de l'encodage de ma page ne pourrait corriger cette absurdité. Bien que, curieusement, il est juste apparu ici correctement, donc je ne sais pas ce que je fais mal.

Donc de toute façon, je l'ai réparé en faisant tout passer par cette fonction php avant de l'afficher.

function fixChars($text){ 

    // Next, replace their Windows-1252 equivalents. 
    $text = str_replace(
    array('‘', '’', '“', '”', '•', '—', '…'), 
    array("'", "'", '"', '"', '-', '--', '...'), 
    $text); 

    return $text; 

} 

Donc, maintenant les choses semblent bien.

Merci pour la direction tous.