Bien le bonjour à tous et à toutes !

J'ai pu apercevoir de redoutables membres sur d'autres sujets qui m'ont aidés autrefois.


Aujourd'hui je viens vers vous car je perds un peu l'espoir, sur l'unique base de mes connaissances reduites sur l'encodage. Voici mon histoire... (lol)


Alors j'ai un site web en php en charset ISO-8859-1 hebergé sur 1and1.
Lorsque, par requete, mon fichier php appelle du texte venant de BDD MySQL, l'affiche se fais comme par exemple:

Précédents -> Précédents

Des lors, le probleme est que c'est partout comme ca sur mon site a exception pres que si je tape le texte a la main, sur le fichier php, les accents s'affiche parfaitement.

Je pense que dans l'importation des données, il y a un probleme.
Est ce Mysql qui est comme ca:

MySQL Serveur:

Localhost via UNIX socket
Version du serveur: 5.0.45
Version du protocole: 10
Utilisateur: metalmeet@localhost
Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)


Serveur web

sw-cp-server/1.0.0
Version du client MySQL: 5.0.45
Extension PHP: mysql

phpMyAdminVersion 3.3.3

Pouvez vous me venir en aide ?
Pardon mais j'ai oublié de preciser que, le jeu de caractere pour MySQL est UTF8.

Est-ce la mon probleme ?
Sur quoi ?

Sachant que je ne peux toucher au pages PHP. C'est trop delicat, c'est un CMS que j'ai.
Normalement sur tes pages php mais si tu ne peux pas les toucher :

- Est-ce que tu peux changer l'encodage de tes pages en mettant le charset en utf-8 ?

- ou alors changer l'encodage de ta bdd en ISO-8859-1 ?
Je travaille actuellement sur la recherche du fichier de configuration de ma BDD pour la traduire en ISO.

Je n'est pas l'alternative d'utiliser l'utf8.
Salut,
pour ma part j'ai UTF-8 Unicode (utf8) dans ma bdd,

mais comment est ta page qui enregistre les données dans la base quel encodage car quand tu modifies le texte à la main dans la bdd tout fonctionne pour toi ça viens donc de ta procédure d'enregistrement !
mes champs sont en latin1_swedish_ci et tout fonctionne avec les caractères (frenchies and co)

à+
Si tes données brutes dans ta base sont en ISO-8859-1, et que tu veux sortir de l'ISO-8859-1, il faut:
1. Vérifier que tous les champs de ta base de données sont bien indiqués en ISO-8859-1 (tu vois ça à l'interclassement de la base, de la table ou de la colonne, qui devra être en latin1-quelquechose).
2. S'assurer que la connexion à MySQL se fait en ISO-8859-1 (latin1) et pas dans un autre codage. Pour cela, on pourra utiliser la directive SET NAMES juste après l'ouverture de la connexion. Si c'est le CMS qui fait la connexion à la base, voir la documentation du CMS pour savoir comment le configurer correctement.

Si tes données sont en ISO-8859-1, sont marquées comme telles dans la base, et que la connexion se fait en UTF-8... alors MySQL va transcoder les données de ISO-8859-1 vers UTF-8.
Tu as pu vérifier les deux points décrits dans mon message précédent?
D'après ton schéma tu ne sais pas:
- quel est le codage utilisé pour la connexion entre ton application PHP et le serveur MySQL;
- quel est le codage indiqué pour les tables et champs de ta base de données (ce que tu peux vérifier dans phpMyAdmin).

Il faudrait vérifier ces points.

Pour information, phpMyAdmin n'est pas une vue fidèle des données que tu as dans ta base, en ce qui concerne les codages de caractères. En effet, c'est une application PHP qui elle aussi ouvre une connexion au serveur MySQL avec un codage précis, et il peut y avoir des conversions à la volée. Par exemple si phpMyAdmin utilise une connexion en UTF-8, déclare ses pages HTML en UTF-8, et que la base est indiquée en ISO-8859-1 (latin1), lorsque tu utilises phpMyAdmin il y a une conversion de ISO-8859-1 vers UTF-8 qui se fait pour l'affichage des données.