Impressum

utf-8 : problèmes d’affichage des caractères et dysfonctionnement de la recherche

dimanche 18 septembre 2011
par  François Daniel Giezendanner
popularité : 2%
3 votes

 Préambule

Selon wikipedia :

L’IETF requiert maintenant qu’UTF-8 soit pris en charge par défaut (et non pas simplement supporté en tant qu’extension) par tous les nouveaux protocoles de communication d’Internet (publiés dans ses RFC numérotées) qui échangent du texte


 Introduction

JPEG - 4.8 ko

Pour diverses raisons (cf. ci-dessous) vour pouvez êtres confrontés à des problème d’affichage des caractères (par exemple la page affiche des caractères de ce type : « Ã© », « Ã® », « Ã », …) et de dysfonctionnement de la recherche de mots accentués.

Pour les résoudre, nous indiquons la marche à suivre dans SPIP et citons également divers utilisateurs SPIP qui ont fait part de leurs investigations. Nous les reportons pour une part ici et nous citons pour une autre part de manière non exhaustive (certain à valeur aujourd’hui purement historique).


 Marche à suivre dans SPIP

JPEG - 6.5 ko

Aujourd’hui nous travaillons avec la dernière version de SPIP, soit la 2.1.0, et avec elle nous disposons d’un outil pour intervenir.

Dans l’espace privé, allez sous : Configuration —> Gestion des langues—>Langue principale du site.

Là SPIP vous propose de choisir la « Langue principale du site : », nous vous proposons de choisir : français.

Ensuite vous lisez (le site est configuré par exemple ici en iso-8859-1) :

GIF - 26.3 ko

Reprenons :

Jeu de caractères du site

JPEG - 6.9 ko

Il est conseillé d’employer, sur votre site, l’alphabet universel (utf-8) : celui-ci permet l’affichage de textes dans toutes les langues, et ne pose plus de problèmes de compatibilité avec les navigateurs modernes.

Votre site est actuellement installé dans le jeu de caractères : iso-8859-1

Si cela ne correspond pas à la réalité de vos données (suite, par exemple, à une restauration de base de données), ou si vous démarrez ce site et souhaitez partir sur un autre jeu de caractères, veuillez indiquer ce dernier ici :
(Attention : ce réglage ne provoque pas la conversion des textes déjà enregistrés dans la base de données.)

Puis vous lisez :

Note : vous pouvez décider de convertir une fois pour toutes l’ensemble des textes de votre site (articles, brèves, forums, etc.) vers l’alphabet utf-8, en vous rendant sur la page de conversion vers l’utf-8.

Activez ce lien et vous obtenez :

GIF - 12.1 ko

Action : Convertir votre site en utf-8

Vous vous apprêtez à convertir le contenu de votre base de données (articles, brèves, etc) du jeu de caractères iso-8859-1 vers le jeu de caractères utf-8.AvertissementN’oubliez pas de faire auparavant une sauvegarde complète de votre site. Vous devrez aussi vérifier que vos squelettes et fichiers de langue sont compatibles utf-8.
Important : en cas de timeout du serveur, veuillez recharger la page jusqu’à ce qu’elle indique « terminé ».

Puis après validation :

GIF - 24.5 ko
GIF - 19 ko

 Plugin Fulltext : Marche à suivre dans SPIP

La recherche fulltext fonctionne en mode utf-8. Si l’alphabet de site n’est pas l’alphabet universel (utf-8), le plugin vous propose de le convertir en utf-8.

Pour cela allez à : configuration —> Fulltext

en bas de page une incohérence entre le charset de votre site et celui des tables de votre base de données vous est indiquée et on vous propose de convertir en utf-8 pour restaurer la cohérence :

GIF - 6.7 ko

ce qui vous dirige sur :

GIF - 12.1 ko

Puis après validation :

GIF - 24.5 ko
GIF - 19 ko

 Quelques expériences d’utilisateurs de sites SPIP


 Encodage et migration de la base de données de SPIP en UTF-8

JPEG - 3.2 ko

Aujourd’hui, lorsque vous installez un SPIP 2.x, vous avez une belle base de données avec un interclassement « utf8_general_ci » et des données ayant un jeu de caractères en UTF-8.

Avant SPIP 2.x, la base de données se retrouvait avec un interclassement « latin1_swedish_ci » et un jeu de caractères en ISO-8859-1. SPIP offrait la possibilité de convertir les données avec un jeu de caractères en UTF-8 et dès SPIP 1.9, cette conversion était imposée.

Ainsi, nous pouvions avoir un SPIP avec une base de données en UTF-8... Oui, mais faussement en UTF-8. La base et les tables avaient toujours un interclassement « latin1_swedish_ci » et les données avaient reçu un coup de utf8_encode() par SPIP. L’accentuation étaient par conséquent transformée, de telle manière que le « é » était devenu « Ã© » et SPIP passait un coup de utf8_decode() pour que l’accentuation s’affiche correctement, en ayant vérifié au préalable la valeur du « charset » de la table « spip_meta ». Cette conversion n’est pas ce que l’on peut appeler de propre. Elle pouvait provoquer quelques problèmes avec le moteur de recherche où la recherche ne permettait pas de trouver des mots accentués.

Pour avoir une base propre, il faut que les données aient un jeu de caractères en UTF-8, et que la base, ainsi que les tables aient un interclassement « utf8_general_ci ».

[Pour ce faire, il suffit d’exécuter les commandes suivantes :-Encodage et migration de la base de données de SPIP en UTF-8]


 Problème encodage UTF-8

Petit lien vers une page pratique sur l’encodage de caractère en utf-8 avec PHP / MySQL (lire l’article). Voici un résumé intéressant que l’on peut trouver à la fin de l’article :

Reconnaissance rapide des problèmes d’affichage UTF-8 ISO

PNG - 4.3 ko

Si la page affiche des caractères de ce type : « Ã© », « Ã® », « Ã », ... => Les données ont été enregistrées au format UTF-8, et le navigateur les affiche en pensant avoir affaire à de l’ISO.

Si la page affiche des caractères de ce type : «  ? » => Les données ont été enregistrées au format ISO, et le navigateur les affiche en pensant avoir affaire à de l’UTF-8.


 [Résolu] Problème de recherche avec accents dans Spip !

...certains sites sous spip avaient la recherche qui ne marchait pas bien. Ils ne trouvaient pas les mots avec accents.

Après un peu de recherche et grâce à notre expertise Linux Mysql & co, nous avons trouvé la solution, que nous vous confions ici, exemples et explications à l’appui !


 Comment passer son site en utf-8

JPEG - 3.1 ko

Vous avez probablement commencé à utiliser SPIP dans le jeu de caractères iso-8859-1, qui correspond à l’intallation standard. Mais ce jeu est limité aux caractères occidentaux, et voilà que votre site doit devenir multilingue ; il est temps de passer à utf-8. Pour en savoir plus, vous pouvez lire Voyage dans la tour de Babel du net.

- Configurez le site. Rendez-vous dans la configuration du site, partie « Gestion des langues », et indiquez à SPIP que le charset de la base est désormais utf-8. (Cette option n’est disponible que si vous êtes en interface complète).

- Videz le cache. Il est impératif de vider le cache, sinon certains navigateurs n’arriveront pas à afficher des pages se présentant comme de l’utf-8 (d’après les nouveaux réglages de SPIP) mais contenant des caractères iso-8859-1 (encore présents dans les « vieux » fichiers cache).


 Codage en utf8 : problème avec le caractère ’à’

Bonjour,
Le mystère des « à » est enfin élucidé ! Dans Configuration > Gestion des langues, j’avais mis UTF-8 en majuscules et non en minuscules. SPIP considérait que c’était une autre langue, et convertissait certains caractères, mais pas d’autres, comme à et ù.
Anne-Marie Pocquet


 Pour en savoir plus sur l’Unicode et l’utf-8

PNG - 6.7 ko

Unicode est une norme informatique, développée par le Consortium Unicode, qui vise à donner à tout caractère de n’importe quel système d’écriture un nom et un identifiant numérique, et ce de manière unifiée, quelle que soit la plate-forme informatique ou le logiciel.

UTF-8 (UCS transformation format 8 bits) est un format de codage de caractères. Chaque caractère ou graphème est représenté dans un répertoire universel sous la forme d’une suite d’un ou plusieurs « caractères abstraits », alloués séparément et codés chacun par leur position dans le répertoire universel, position appelée « point de code ». Chaque point de code est ensuite codé de façon unique sur une suite d’un à quatre octets. Ce format de transformation a été conçu pour être compatible avec de nombreux logiciels originellement prévus pour traiter des caractères codés sur un seul octet.

... L’IETF requiert maintenant qu’UTF-8 soit pris en charge par défaut (et non pas simplement supporté en tant qu’extension) par tous les nouveaux protocoles de communication d’Internet (publiés dans ses RFC numérotées) qui échangent du texte (les plus anciens protocoles n’ont toutefois pas été modifiés pour rendre ce support obligatoire, mais seulement étendus si possible, pour le supporter de façon optionnelle, si cela produit des incompatibilités ou introduit de nouveaux risques de sécurité : c’est le cas de protocoles Internet très utilisés comme DNS, HTTP, FTP, Telnet et de HTML dans ses versions initiales non normalisées par le W3C)


 Sources


Commentaires

Logo de AP
mercredi 29 mai 2013 à 17h11, par  AP

Après plusieurs heures de recherche difficile pour ce même problème, il apparaît que ce problème n’est pas propre à SPIP.

N’étant pas un adepte, j’ignore comment SPIP traite différemment « UTF-8 » en majuscule et « utf-8 » en minuscules (tel que mentionné auparavant), mais ce n’est sans doute pas la raison de ce bug qui ne concerne que le caractère « à » (sinon, tous les autres caractères accentués seraient également affectés).

En réalité, cela concerne l’encodage de « à » en utf-8 sur 2 octets, et dont le second octet n’est autre qu’un espace blanc (cas particulier de « à »). Donc, pour ma part (PHP), le traitement des espaces blancs me générait ce « bug », j’ai donc modifié ma fonction de traitement :

$str = preg_replace('` [1]1,`', ' ', trim($str)) ;

en :

$str = str_replace(' [2]', 'à', preg_replace('` [3]1,`', ' ', str_replace('à', ' [4]', trim($str)))) ;

Voir ce lien : http://stackoverflow.com/questions/7529996/php-character-encoding-sign-instead-of-a

Here is my take on your problem. The letter à is encoded in two bytes in utf8. The first byte is xC3, which is à in latin-1, the second byte is... non breaking space ! (The other accented letters, such as è are encoded by à followed by an other accented letter in latin-1, and they are not affected).

Therefore, my guess is that you have a script, somewhere, that removes, or replaces, the non-breaking space in latin-1, i.e., character xA0. The resulting lonely byte xC3 cannot be displayed properly, so the general placeholder � is displayed instead. (just load your page in latin-1, you will see that I am right).

Stackoverflow : PHP character encoding � sign instead of à http://stackoverflow.com/questions/7529996/php-character-encoding-sign-instead-of-a


#nb9
#nb10
#nb11
#nb12
http://stackoverflow.com/questions/7529996/php-character-encoding-sign-instead-of-a

Logo de Jean-Baptiste Pressac
mercredi 5 octobre 2011 à 14h42, par  Jean-Baptiste Pressac

Bonjour, Merci pour cette synthèse d’un problème épineux bien que très courant sur les sites SPIP antérieurs à la version 2.1.Pour information, ayant souvent été confronté au problème, la conversion proposée par le plugin Fulltext s’est avérée comme étant la plus fiable et la plus simple à mettre en œuvre. Cordialement, Jean-Baptiste Pressac

Publications

Derniers articles publiés

Agenda

<<

2014

 

<<

Novembre

 

Aujourd'hui

LuMaMeJeVeSaDi
272829303112
3456789
10111213141516
17181920212223
24252627282930
Aucun évènement à venir les 6 prochains mois

Météo

Geneva, GE, Switzerland

Conditions météo à 16h05
par weather.com®

Soleil et nuages épars

6°C


Soleil et nuages épars
  • Vent : 6 km/h - ouest
  • Pression : 1021 mbar →
Prévisions >>

Prévisions du 23 novembre
par weather.com®

Inconnu

Max 7°C
Min 8°C


Inconnu
  • Vent : N/D km/h
  • Risque de precip. : %
<< Conditions  |  Prévisions >>

Prévisions du 24 novembre
par weather.com®

Soleil et nuages épars

Max 15°C
Min 7°C


Soleil et nuages épars
  • Vent : 4 km/h
  • Risque de precip. : 0%
<<  Prévisions  >>

Prévisions du 25 novembre
par weather.com®

Soleil et nuages épars

Max 13°C
Min 7°C


Soleil et nuages épars
  • Vent : 4 km/h
  • Risque de precip. : 20%
<<  Prévisions  >>

Prévisions du 26 novembre
par weather.com®

Orage épars

Max 11°C
Min 7°C


Orage épars
  • Vent : 4 km/h
  • Risque de precip. : 30%
<<  Prévisions  >>

Prévisions du 27 novembre
par weather.com®

Averses

Max 11°C
Min 5°C


Averses
  • Vent : 4 km/h
  • Risque de precip. : 60%
<<  Prévisions  >>

Prévisions du 28 novembre
par weather.com®

Soleil voilé

Max 11°C
Min 5°C


Soleil voilé
  • Vent : 8 km/h
  • Risque de precip. : 10%
<<  Prévisions  >>

Prévisions du 29 novembre
par weather.com®

Soleil voilé

Max 12°C
Min 3°C


Soleil voilé
  • Vent : 4 km/h
  • Risque de precip. : 10%
<< Prévisions


Annonces

Embed Twitter « responsive tools »

Pour le faire sur votre site


Embed Twitter « RWD »

Pour le faire sur votre site


Embed Twitter dans SPIP

Pour le faire sur votre site


Sites favoris


39 sites référencés dans ce secteur

Brèves

Plugin Publication Ouverte

vendredi 19 septembre 2008

Le plugin « Publication Ouverte » a pour but de fournir une interface de publication d’article publique et anonyme permettant à n’importe quel visiteur d’un site spip de publier un article sans aucune authentification. Cette méthode de gestion/création de contenu est appelé « Publication ouverte » (ou open-publishing en anglais). La publication ouverte est principalement pratiqué par le réseau indymédia, ainsi que de nombreux autres sites d’informations alternatives.

Plugin Bouquinerie

vendredi 19 septembre 2008

Le plugin Bouquinerie permet de mettre en place rapidement et simplement un site proposant :

  • la présentation du commerce de type bouquinerie, ou librairie
  • la présentation de son catalogue de livre.

L’espace privée permet la gestions de multiples catalogues (recherches, doublons, modification des enregistrements), l’importation de catalogues en provenance de sites tiers, et l’exportation des catalogues au format xml.

KAYE, un cahier de texte électronique pour l’école primaire

vendredi 19 septembre 2008

Descriptif du plugin

Sur l’espace public

  • Le visiteur peut sélectionner le cahier de texte de la classe de son choix (Si le plugin accès resteint est installé sur le site, après authentification, ne s’affichent que les cahiers de texte sur lesquels le visiteur a les droits de lecture)
  • Le visiteur peut ordonner les résultats du tableau par discipline, par date, par consigne...

Dans l’espace privé

  • Les élèves (rédacteurs) peuvent écrire les devoirs Les enseignants (administrateurs) gèrent le cahier de texte
  • Lors de la création d’un classe, on choisit obligatoirement un enseignant référent (administrateur).
  • Si le plugin accès restreint est installé on peut choisir une zone.

Dans l’espace public : pour administrateurs connectés

  • Si le plugin crayon est activé, les administrateurs peuvent modifier les devoirs sans repasser par l’espace privé

Source

Pédagogie efficace appliquée à l’apprentissage de la construction d’un site Spip de A à Z

vendredi 6 octobre 2006

l’Institut national de la jeunesse et de l’éducation populaire applique une pédagogie adaptée pour l’enseignement et l’apprentissage de la construction d’un site SPIP de A à Z.

En effet, en informatique comme en bien d’autres domaines, les cours ne sont pas suffisants. Il importe de les accompagner d’une activité collaborative théorique et pratique à distance d’une durée suffisante. En ce sens, il propose pour la modique somme de 150 euros : 5 jours de présentiel (12, 13, 14 et 15 septembre 2006, 15 décembre 2006), 3 mois d’accompagnement à distance, et une pédagogie à la fois centrée sur le projet de chaque stagiaire et sur le travail collaboratif.

Objectifs :

  • Construction de son propre site SPIP par chaque stagiaire.
  • Acquisition des notions de base concernant les standards W3C et le référencement Web. Contenu du stage :
  • Approfondissements du langage html et des feuilles de style.
  • Les squelettes et boucles SPIP.
  • Construire un squelette en respectant les standards 3WC (construire un squelette sans tableau, etc.).
  • Installation de la newsletter Spip-lettres.
  • Création de rubriques en accès privé (extranet).
  • Outils de syndication avec d’autres sites (Spip2spip, rss).

Pour plus d’information :

Bilan

Nul doute que cette formation sera une réussite. Nous somme intéressés de visionner les sites construits par chaque stagiaire. La liste en sera probablement publiée.