Pb Apache: pb avec éèùàê
bob031 -
J'ai un soucis avec Apache:
j'ai deux environnements identique avec une différence:
le premier env: _ENV["LANG"]=fr_FR
le second env : _ENV["LANG"]=en_US
PHP 4.2.3
Apache 1.3.26
Avec mon applis PHP:
1er env:
je saisie "testé" (insertion base) et l'affichage de la liste donne "testé"
2nd env:
je saisie "testé" (insertion base) et l'affichage de la liste donne "test?"
(l'env 2 bouffe les accents éàèùê)
Je pense donc que mon problème viend de la langue du serveur.
Comment puis-je modifier la langue de mon deuxième environnement?
Je rame depuis plusieurs jours donc si vous avez une piste, une idée... Je prends!
Merci
Configuration: Windows XP Internet Explorer 6.0
- Pb Apache: pb avec éèùàê
- Apache openoffice - Télécharger - Suite bureautique
- Open office vs apache openoffice - Forum LibreOffice / OpenOffice
- Redémarrer apache - Forum Réseau
- Apache open office avis - Forum LibreOffice / OpenOffice
- Apache openoffice avis - Guide
57 réponses
- 1
- 2
- 3
Le problème décrit concerne l'effet de la variable LANG sur deux environnements Apache, l'un configuré en fr_FR et l'autre en_US, ce qui entraîne l'affichage des caractères accentués dans le premier et corruption dans le second. Pour corriger, plusieurs conseils visent à vérifier l'environnement actif et à garantir que Apache démarre avec le LANG souhaité, par exemple via SetEnv LANG fr_FR dans la configuration. D'autres échanges soulignent que PHP peut hériter du LANG du processus lanceur et que des paramètres comme php.ini (default_charset) ou le jeu de caractères de la base influencent l'affichage. En cas d'environnement Windows XP, certains échanges soulignent aussi la cohérence entre la locale système et celle d'exécution et la nécessité de choisir ISO-8859-1 ou UTF-8 selon l'application.
centos caractere bizzare a l affichage
Lis la fin, ignore le script :)
J'ai comparé les fichiers httpd.conf de mes 2 env et ils correspondent au niveau de la déclaration des addcharset.
Peut-être est ce un mauvais paramétrage php?
Car en anglais/US , les accents n'existent pas ...
Mais j'ai pas de machine sous la main pour des tests ...
http://montpezat.over-blog.com/
Ps: je parle du "defaultcharset"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe n'ai pas cette variable: ni sur l'environnement qui marche, ni sur celui qui ne marche pas.
ça m'énerve, par ce que c'est une autre équipe qui fait les installations et ils ne suivent jamais les documentations d'installation. Après, je perds 1 semaine à corriger leurs conneries!
Peut-être faut-il changer le paramètre au niveau PHP? Non?
je viends de refaire un diff sur les deux httpd et il y a très peu de différences. elles ne semblent pas concerner l'encodage.
je n'ai pas ces informations dans le phpinfo.php de l'env qui ne fonctionne pas:
NLS_LANG= FRENCH_FRANCE.WE8ISO8859P15
_ENV["NLS_LANG"]= FRENCH_FRANCE.WE8ISO8859P15
dans le lien que j'ai donné, il est question du ficher de lancement d'httpd, et c'est la dedans que l'environnment est défini... mais cela reste à vérifier ...
http://montpezat.over-blog.com/
Et je parlais du defaultcharset , en rapport avec le premier lien :)
Et en ajoutant le defaultcharset et en redémarrant les deux démons apache ?
après vérification en faisant un "echo". la requète est bien construite en php.
c'est l'appel à OCI qui doit merder
si tu veux connaître les variables d'environnement d'un process qui tourne:
ps eww <PID>
Si ton NLS_LANG est absent, soit tu modifies ton script de lancement, soit tu lances Apache à la main en ayant pris soin de renseigner toutes les variables
Rajoute ta variable en début de script, ou là où ça va bien:
export NLS_LANG=french_france.WE8ISO8859P15
Sauvegarde ton fichier avant de faire ça...
$query = "INSERT INTO FLASH_INFO (ID_FLASH, DATE_FLASH, TITRE_FLASH, LIBELLE_FLASH,
ID_RUBRIQUE, ID_SOUS_RUBRIQUE, PROFIL)
VALUES ($idfla, to_date('$DATE_FLASH', 'dd/mm/yy'),'$TITRE_FLASH', '$LIBELLE_FLASH',
1, '$ID_INSTITUTION', '$PROFIL')";
//a ce moment là je fais un echo et la requête est bonne
$stmt = ociparse($conn,$query);
ociexecute($stmt,OCI_DEFAULT);
commit + exit()
=> l'insertion en base de Titre_flash="test ééé" est "test ???" (où les '?' sont à l'envers)
- 1
- 2
- 3