2017-08-18 5 views
1

J'utilise le codage UTF-8 pour une page html.Pourquoi mes résultats de recherche ne sont-ils pas dans le même jeu de caractères que mon encodage de page?

<head> 
    <meta charset="utf-8"> 

Dans la console du débogueur, document.characterSet renvoie "UTF-8".

Sur la page, je métadonnées (mots-clés, description, titre) avec un jeu de caractères UTF-8 valide: '®', qui est UTF-8: 'c2ae'

Le caractère affiche correctement dans la vue source, et sur le titre de la page.

Toutefois, les résultats de recherche google et les résultats de recherche Bing l'affichent comme 'î'. C'est-à-dire, pendant l'analyse Web, il semble être converti en ISO-8859-1 ou en Western-1252 affichant les deux octets: 'c2' et 'ae'.

Si je remplace le caractère par &#174; => (\ u00ae), il s'affiche correctement.

À court de convertir mes métadonnées en ISO-8859-1, y a-t-il une meilleure pratique que je devrais employer pour ceci?

+0

pouvez-vous voir des résultats en cache? – Wayne

+0

Nous avons utilisé l'utilitaire google web-admin, où vous générez un hachage et l'ajoutez à un autre tag de métadonnées, puis demandez une nouvelle extraction de la page. . L'utilitaire fresh fetch affiche les métadonnées entrantes et contient le caractère. – Tim

+0

Au lieu d'éditer la solution dans la question, vous devriez poster une réponse avec la solution. – unor

Répondre

1

Problème sur le back-end, les données n'étaient pas correctement transcodées en UTF-8 lorsqu'elles étaient lues dans le cache. Donc, je pense que la meilleure pratique consiste à utiliser le caractère BMP UTF-8 natif, avec le codage de page approprié, et ne pas être obligé d'utiliser les valeurs d'entité html.

0

Regardez les pages balises meta et vérifiez qu'il n'utilise pas ceci:

<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"> 

HTML5 Google recommande:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 

Notez également ceci: enter image description here

Remarque :

<meta charset=""> 

Une autre remarque: Certains caractères sont réservés en HTML. "Entités html" Ces caractères réservés au format HTML doivent être remplacés par des entités de caractères. par exemple.

& ampersand &amp; &#38; 

® registered trademark &reg; &#174; 
+0

Dans la première phrase, je mentionne que ma page est encodée en utf-8, c'est ce que je veux dire. J'utilise la norme html5 ci-dessus. Et dans la console, en tapant document.characterSet renvoie absolument "UTF-8". Je vais clarifier la question, merci – Tim

+0

J'ai mis à jour ma réponse, s'il vous plaît poster votre meta charset et le contenu charset. – Wayne

+0

voir ma note sur les entités html. – Wayne