Fork me on GitHub






Problèmes de caractères
Régulier
Inscrit: 11/11/2005 11:24
Messages: 104
Bonsoir à tous,

J'ai un petit problème sur le site web que je viens de créer. En effet, les "é" le "à" en gros tout ce qui est lettres avec accents ou encore symboles comme "€" s'affichent sous forme de losange à l'intérieur duquel se trouve un point d'interrogation. Je ne connais pas la source de ce problème, je ne peux donc pas y remédier. Ce qui me dérange le plus ce n'est pas les accents, mais plutôt le symbole € puisque j'ai fait installé le module X donations et la devise du montant du don qui est censé être en euros ne s'affiche pas.


Cordialement

Posté le : 26/10/2009 22:02

:xfsuper:
Partager Twitter Partagez cette article sur GG+
Re: Problèmes de caractères
Semi pro
Inscrit: 01/08/2005 19:06
Messages: 1851
Bonsoir,

L'encodage UTF-8 a été introduit dans XOOPS 2.3 par défaut. Toutefois, il pourrait y avoir quelques problèmes avec la conversion de sites Web existants non charset UTF-8 en UTF-8.
Avant il y est une bonne solution pour cette conversion, les paramètres suivants sont recommandés lorsque vous mettre à jour un site existant, si vous n'êtes pas un utilisateur expérimenté:
- Sélectionnez "Ne pas modifier" en option "Base de données de caractères et collation» pas au cours de processus de mise à niveau
- Modifier / languages / Yourlanguage / global.php d'utiliser la valeur existante _CHARSET si elle a été changé en UTF-8 dans votre nouveau fichier en tant que global.php

Citation :
define ( '_CHARSET' , 'UTF-8' );


donc tu devrai encodé ton thème en utf8

Posté le : 26/10/2009 23:02
Partager Twitter Partagez cette article sur GG+
Re: Problèmes de caractères
Guest_
b'soir

Ce souci tient à l'encodage des caractères :
• des fichiers de langue des modules et de Xoops
• des données insérées en base de données.

Selon l'archive de Xoops que tu as téléchargé, ton Xoops "cause" soit UTF8 soit ISO-8859-1. La différence, à part compliquer la vie des monteurs de site depuis Xoops 2.3+, tient à ce que :
• le premier est plus universel
• le second n'est pas obsolète pour autant, il convient parfaitement pour les sites qui n'ont pas vocation internationale (à ce que j'ai compris)


Pour résoudre ton souci, il faut tout d'abord que tu détermines l'encodage utilisé par ton Xoops. Et c'est pas si évident que cela puisque les informations sont à rechercher à deux endroits :
• les fichiers de langue : pour Xoops et ses modules, il y a des dossiers /language/french/ qui contiennent les traductions en français. Les "DEFINE" sont soit en ISO, soit en UTF8.
• la base de données : les données ont été insérées en utilisant UTF8 ou ISO.


Pour connaître avec certitude l'encodage des fichiers de traduction :
1. Ouvrir le fichier de langue avec Notepad++
2. Dérouler le menu Format
3. Si Encoder en UTF-8 (sans BOM) est sélectionné tu as affaire à un fichier encodé en UTF-8. Si l'option sélectionnée est Encoder en ANSI, l'encodage est ISO. Mais il y a une subtilité avec le "Faux UTF8" : en regardant de plus près le contenu des DEFINE, si tu vois que les caractères accentués ont été remplacés par des caractères html (par exemple é remplacé par & e a c u t e) la traduction fonctionnera pour un site en UTF8.

Pour connaître l'encodage de la base de données (désolé pour les personnes qui ont tout compris, le terme est certainement inapproprié), ce n'est pas aussi simple. Ta base de données peut en effet contenir un mixte de caractères accentués et de caractères html (notamment ceux insérés par le biais d'éditeurs wysiwyg tels que FCKeditor). Une simple consultation du contenu des tables ne va pas t'aider donc. Les infos utiles sont situées :
1. Dans phpmyadmin : si dans la colonne interclassement tu as utf8_general_ci, tes données sont prévues pour un affichage UTF8. Si à la place tu as latin1_swedish_ci, tes données sont prévues pour ISO.
2. Dans mainfile.php : une instruction define('XOOPS_DB_CHARSET', 'utf8'); ou define('XOOPS_DB_CHARSET', 'latin1'); permet selon ton choix d'insérer dans ta base des données pour un affichage UTF8 ou ISO.
3. Dans www/language/french/global.php tu as une instruction de langage define('_CHARSET', 'UTF-8'); ou define('_CHARSET', 'ISO-8859'1'); Elle indique à Xoops - si j'ai bien compris - quel type d'encodage est utilisé par ton site...


Bon, tu n'as rien compris ?! si cela peut te rassurer tu n'es pas le seul.

Ce qu'il faut que tu fasses :
• ne pas chercher à passer ton site en UTF8 si tu as bâti ton site il y a plusieurs mois (avant Xoops 2.3). Cela risquerait de te compliquer la tâche.
• vérifier la cohérence de toutes les instructions listées ci-dessus (instruction contenu dans mainfile.php et celle contenue à la fin de global.php, en veillant à ce qu'elle soit homogène pour les fichiers /english et /french même si ton site n'est pas bilingue)
• trouver les fichiers de langue pour tes modules adaptés à ton site : s'il est en ISO, il faut que les fichiers des modules soient en ISO sinon tu obtiendras l'affichage de caractères de remplacement illisibles. Si ton site est en UTF8, il faut que tu trouves les fichiers correspondants (regardes sur le sourceforge de frxoops, je crois que des traductions en "Faux UTF8" sont disponibles)


Je précise que je n'ai pas compris grand chose à tout ça. Mais tant qu'un expert n'aura pas pris le temps de faire une explication détaillée (par exemple : comment passer un site ISO en UTF8), il faudra te contenter d'éclaircissements confus

Posté le : 26/10/2009 23:28
Partager Twitter Partagez cette article sur GG+
Re: Problèmes de caractères
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
Bonjour,

Pour convertir une base de données, cette requête peut être essayée dans un environnement de test :
mysqldump --add-drop-table -uroot -"MABASE"  replace CHARSET=latin1 CHARSET=utf8 iconv -f latin1 -t utf8 mysql -uroot -"MABASE"


@++

Posté le : 27/10/2009 00:23

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: Problèmes de caractères
Guest_
b'soir Kris

Merci pour cette astuce.

Cela revient à la même chose que d'ouvrir sa bdd avec Notepad++ et de faire un chercher / remplacer ? En l'occurrence un chercher CHARSET=latin1 et un remplacer par CHARSET=utf8 ?

Cela dit, une fois fait il reste encore du boulot :
• vérifier que mainfile.php et global.php indiquent bien UTF8
• vérifier que les fichier de langue (de Xoops et de ses modules) soient bien en UTF8
• convertir en UTF8 les templates qui contiennent du texte en dur (et dont le contenu échappe donc à la base de données). A la limite, il faudrait que d'office tous les templates soient encodés en UTF8 (sans Bom), ce serait plus simple.

... mais qui est le con antique qui a inventé le UTF8 !?!

Posté le : 27/10/2009 00:57
Partager Twitter Partagez cette article sur GG+
Re: Problèmes de caractères
Régulier
Inscrit: 16/09/2006 16:07
De Au pays de l'ours.
Messages: 387
Citation :

... mais qui est le con antique qui a inventé le UTF8 !?!


en fait il s'agit de Ken Thompson le 2 septembre 1992...


Posté le : 27/10/2009 21:51
Partager Twitter Partagez cette article sur GG+
Re: Problèmes de caractères
Guest_
Merci marcetmaud, c'est toujours bon de savoir à quels zouaves on a à faire !

Pour continuer sur les problèmes de caractères, je viens de voir que certains modules (en l'occurrence eXtGallery) s'installent en utilisant l'interclassement latin1_swedish_ci.

Pourquoi et est-ce qu'il y aurait un moyen de changer cela ?

Je précise que le site où j'installe le module est seulement en anglais et que la base de données est en interclassement utf8_general_ci (pour tous les autres modules : system et protector installés avec le Xoops 2.4, xoopscare installé classiquement depuis le panel d'administration...)

Posté le : 28/10/2009 13:28
Partager Twitter Partagez cette article sur GG+
Re: Problèmes de caractères
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
Messages: 2708
Parce-qu'il n'y a pas une
TYPE=MyISAM;
apres
CREATE TABLE xxxx ( ... )
?

Avertissement:
Pour le conversions du tables par MySQL, il faut faire attention que le contenue n'est pas toujours seulement le caractères ISO xxxx, mais contient aussi des caractères WINxxx, qui ne sont pas traduit, comme par exemple la signe d'euro, et donne une représentation d'erreur après comme '?'.

Posté le : 28/10/2009 14:25

Salutations, Gerard.
PS: Excusez mon mauvais français.
De la bonne manière de poser les questions
Partager Twitter Partagez cette article sur GG+
Re: Problèmes de caractères
Newbie
Inscrit: 12/04/2007 21:41
Messages: 19
Bonjour à tous,

Citation :

Burning a écrit:
...
Je précise que je n'ai pas compris grand chose à tout ça. Mais tant qu'un expert n'aura pas pris le temps de faire une explication détaillée (par exemple : comment passer un site ISO en UTF8), il faudra te contenter d'éclaircissements confus

Je me permets de m'immiscer dans votre discussion pour me faire l'écho de notre ami Burning car je pense que c'est un sujet qui doit intéresser beaucoup de visiteurs et utilisateurs Xoops (dont je suis).

Tout d'abord, je te remercie Burning pour ses quelques explications qui sont déjà pour moi fortes intéressantes.

Tout comme l'ami Burning donc, je rêve de pouvoir - enfin - migrer définitivement mon site et le convertir entièremet en UTF8, pour être libéré de cet éternel casse-tête. Malgré plusieurs tentatives et expériences en local, je n'ai pas encore osé passer mon site réel en version 2.3x. J'ai bien sûr réalisé avec succès, en local, la migration tout en modifiant le global.php, mais j'ai tout bonnement l'impression de reculer le problème une fois de plus et chaque mise à jour future deviendrait un calvaire...

Je jette donc une bouteille à la mer, et espère qu'un jour, un expert motivé sacrifie le temps nécessaire et mette à profit ses compétence pour un véritable tuto sur le sujet...
Il est bien sûr évident que c'est plus simple à dire qu'à faire, et j'en ai malheureusement bien conscience.

Pour conclure, je tiens toutefois à vous remercier tous pour avoir fait de Xoops ce qu'il est aujourd'hui et pour vos efforts qui, j'en suis sûr, l'amèneront vers un succès que vous méritez amplement !

Bien cordialement,

Posté le : 28/10/2009 18:40
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

69 Personne(s) en ligne (54 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 69 | Plus ...