é accents remplacés par des ??????
Aller à la page 1, 2  Suivante
PHP-Nuke France - CE -> Utilisation

Auteur: Antiwesh MessagePosté le: 11.09.2005, 19:54:32    Sujet du message: é accents remplacés par des ??????

bonjour
linstalle phpnuke7.6 av la derniere version de easyphp le site marche au poil sauf que les "é" sont changés en "?" que faire ? j'ai pas trouvé de soluce sur le forum ...
merci d'avance

Auteur: aven59 MessagePosté le: 15.09.2005, 16:26:46    Sujet du message:

J'ai pas trouvé non plus de soluce ici...

Il semble qu'il faille modifier le codage des caractères dans MySQL lors de la création... Mais j'ai pas trouvé le bon réglage (utf8 bin marche pô)

Appel aux grands gourous d'ici

Merci

Aven59

Auteur: ckforumLocalisation: FRANCE MessagePosté le: 15.09.2005, 23:39:43    Sujet du message:

Bonjour ,

Le probleme d'accent n'est pas forcément lié à la déclaration du Doctype (ou a l'ajout d'un defaut charset dans le .htaccess) surtout si ton serveur mysql est sup à 4.1 C'est je pense un probleme de collation de bdd soit normalement ton serveur mysql est peut être configuré avec un jeu de charactere UTF-8 donc forcément quand tu collectes les données celles ci te sont restituées en UTF-8 car tu ne précises pas le contraire ! (nota: le probleme ne se posait pas avant car les versions "anciennes" de mysql ne posait pas ce probleme de jeu de characteres ! d'ailleurs la plupart des hébergeur ne sont pas encore passé sur les dernieres versions de mysql pour l'instant et à l'heure de ce post...)

Donc pour definir la "collation de données" pour phpnuke (qui lui ne sais pas encore travailler en UTF8 Smile et qui normalent n'encode pas ses données en UTF-8 mais en général il stocke les données tel quel donc comme tu les saisis donc avec des é et des à etc... ) nous allons dire à mysql server que nous allons collecter les données en "latin1" ce qui evitera d'avoir des hieroglyphes à l'écran Smile pour cela on va faire simple :

Tu vas avoir besoin d'editer le fichier mysql.php situé le repertoire db/
Tu cherches : (dans le constructeur sql_db) (lig. 56 env.)
Code:

      if($this->db_connect_id)
      {


En dessous tu ajoutes la phrase suivante :

Code:

/**
 * Add by ck pour pouvoir utiliser phpnuke en collation de donnée latin1 alors
 * que le serveur est configuré en utf8
 */
mysql_query("SET NAMES 'latin1'", $this->db_connect_id);


Ce qui nous donnera au final :

Code:

      if($this->db_connect_id)
      {
/**
 * Add by ck pour pouvoir utiliser phpnuke en collation de donnée latin1 alors
 * que le serveur est configuré par défaut en utf8
 */
mysql_query("SET NAMES 'latin1'", $this->db_connect_id);


Certe il y a la possibilité re paramétrer le serveur pour qu'il soit par défaut en latin1 mais pour cela il faudrait que tu edites le fichier my.ini situé dans mysql/ mais je ne m'étend pas la dessus vu que si tu as besoin d'utiliser un autres soft comme gallery 2 par exemple celui-ci ne travaillant qu'en UTF-8 tu seras de nouveau ennuyer mais dans l'autre sens Smile

Voilà grace à cette simple phrase toutes les données entre mysql et phpnuke seront de type latin1 donc cela permet de définir du jeu de caractères par défaut
pour chaque "connexion" établie via une requete, sans pour autant avoir à redéfinir les paramètres généraux du serveur Mysql !

Pour plus d'info :

PHP.NET :
http://fr3.php.net/manual/fr/function.mysq...nt-encoding.php

MYSQL.COM :
http://dev.mysql.com/doc/mysql/fr/charset-general.html
http://dev.mysql.com/doc/mysql/fr/charset-connection.html

Pour des version de mysql antérieur cela ne fonctionnera pas forcément donc vous devrez certainement passer par une conversion de la bdd ! en utilisant par exemple
http://www.iconv.com/iconv.htm via un binaire et en mode de commande ... mais là c'est une autre histoire

ça s'était pour la partie mysql !

Ensuite si ton vhost est parametré par défaut par easyphp il doit être avec un jeu de caracteres du type (par exemple)
Code:

AddDefaultCharset utf-8


donc si ton serveur est bien paramétré pour lire les .htaccess (ce qui n'est pas toujours le cas hélas)
dans ce cas via le .htaccess de ton site à la racine de celui-ci
ajoutes a la fin de ce fichier :

Code:

AddDefaultCharset ISO-8859-1


La nous précisons que pour ton site le jeu de caracteres générer par apache est le nôtre !

Désolé si la réponse est longue mais cette revient souvent en ce moment donc cela pourrait être utile ...
Vu qu'aparement il y a pas mal de gens qui utilise easyphp dans les dernieres versions .. et que
cette distribution integre les dernieres versions tu ne dois pas être le seul dans ce cas Smile

@++

Auteur: aven59 MessagePosté le: 16.09.2005, 08:00:33    Sujet du message:

Merci pour ta réponse...

Mais:

F?licitations! l'installation de votre nouveau site s'est bien d?roul?e.
D?sormais vous allez pouvoir profiter de toute la puissance de PHP avec le syst?me PHP-Nuke ?.

Super !!!

- Ma version de MySQL est 4.1.13a

- htaccess paramétré sur Apache

- modif effectuée dans mysql.php (et aussi dans mysql4.php).

Ca ne sert à rien !!!!

Tout simplement parce que les fichiers lang-french.php sont codés avec des 'é' et des 'é'...

Merci

Aven59

Auteur: ckforumLocalisation: FRANCE MessagePosté le: 16.09.2005, 09:15:13    Sujet du message:

Les caractres é etc... c'est normal ce sont des caracteres SGML !!!
http://www.mutu-xml.org/xml-base/shared/KEY-SGML.html ( SGML - Langage normalisé de balisage généralisé)

Donc tu me parles d'un probleme lié aux traductions !!!
Ne fais pas d'amalgame ! si il te reste des problemes d'affichage alors c'est certainement lié à un probleme de ta configuration
via apache comme je te l'ai expliqué !

Donc vérifies ces parametres !
si tu n'y arrives pas alors soit tu essayes de convertir convenablement les quelques phrases qui peuvent en effet encore posé probleme
et de re vérifier les actions que tu as faites (en pensant bien a chaque fois a redémarrer le service apache ) je t'ai dis plus haut que parfois certaines distrib type easyphp n'implémente pas le fait de pouvoir lire les .htaccess au niveau du fichier conf ! donc il faut que dans le VHOST de ton site local il y est une phrase
de type

Code:

AccessFileName ".htaccess"


si le mod "mod_access.so" est bien chargé ! (là aussi on ne fais pas de spport sur apache ! au cas ou vois du côté de easyphp ou sur http://www.apachefrance.com/

Sois tu downgrade ta version de easyphp ! (ce sera peut être plus simple dans ton cas ! ) Mais la on ne fais pas de support pour easyphp mais pour phpnuke vois du côté de easyphp si ce type de probleme n'a pas déjà été abordé !

Et surtout stay cool because phpnuke est un projet libre donc il faut être tolérant et essayer de faire avancé les choses Confused

Peut être que sans le vouloir tu as créér tes tables en mode utf8 et donc les données ont été converties dans la tables elles même ?
Brefs tes données dans la tables sont avec des é ou avec des @% ? par exemple ? (regardes cela avec phpmyadmin !



PHP-Nuke France - CE -> Utilisation

Toutes les heures sont au format GMT + 2 Heures

Aller à la page 1, 2  Suivante
Page 1 sur 2


>> Fermer cette Page <<