|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 32 ![]() |
Bonjour,
Je travaille en PHP4 avec une database 9i, j'ai des problèmes lors de l'insertion (depuis php) de valeurs lorsque celles-ci contiennent des accents. J'exécute ces même requêtes au départ de sqlplus ou toad et là les accents fonctionne bien. Je sais que je peux setter NLS_LANG mais je préférerai laisser la base comme elle est : DATABASE NLS_NCHAR_CHARACTERSET - AL16UTF16 NLS_LANGUAGE - AMERICAN NLS_TERRITORY - AMERICA NLS_CURRENCY - $ NLS_ISO_CURRENCY - AMERICA NLS_NUMERIC_CHARACTERS - ., NLS_CHARACTERSET - WE8ISO8859P15 NLS_CALENDAR - GREGORIAN NLS_DATE_FORMAT - DD-MON-RR NLS_DATE_LANGUAGE - AMERICAN NLS_SORT - BINARY NLS_TIME_FORMAT - HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT - DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT - HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT - DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY - $ NLS_COMP - BINARY NLS_LENGTH_SEMANTICS - BYTE NLS_NCHAR_CONV_EXCP - FALSE NLS_RDBMS_VERSION - 9.2.0.8.0 INSTANCE NLS_LANGUAGE - AMERICAN NLS_TERRITORY - AMERICA NLS_LENGTH_SEMANTICS - BYTE NLS_NCHAR_CONV_EXCP - FALSE SESSSION NLS_LANGUAGE - AMERICAN NLS_TERRITORY - AMERICA NLS_CURRENCY - $ NLS_ISO_CURRENCY - AMERICA NLS_NUMERIC_CHARACTERS - ., NLS_CALENDAR - GREGORIAN NLS_DATE_FORMAT - DD-MON-RR NLS_DATE_LANGUAGE - AMERICAN NLS_SORT - BINARY NLS_TIME_FORMAT - HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT - DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT - HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT - DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY - $ NLS_COMP - BINARY NLS_LENGTH_SEMANTICS - BYTE NLS_NCHAR_CONV_EXCP - FALSE Qq un aurait une idée? |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
Tu peux nous donner un exemple de mot qui ne fonctionne pas ?
__________________
Modérateur PHP |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 32 ![]() |
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 2 ![]() |
J'ai le même problème.
Voici une mise en situation : - La base de données est la dernière version de Oracle Database 10g installée sur une machine linux. - Le serveur Apache est installé sur une autre machine Sun Solaris (unix) et la version de php installée est la 4.3. - Les clients accèdent l'application php (GLPI pour Oracle) à partir de postes Windows 2000. L'application fonctionne nickel même pour les accents. Les accents s'affichent bien mais il ne sont pas stockés correctement dans la BD. Par exemple Écran dans la BD apparaît comme Â?cran ou quelque chose comme cela. Il est important que les accents soient stockés correctement dans la BD. D'après ce que j'ai pu lire cela est du au fait que je n'ai pas le bon charset de spécifié lors de ma connection. Donc il y a double mauvaise convertion de charset lors de l'entrée et lors de la sortie ce qui fait que les accents s'affichent correctement dans l'application mais ne sont pas stockés correctement dans la BD. Mon problème est le suivant la BD a un charset de FRENCH_FRANCE.AL32UTF8. Le serveur Apache a un charset de FRENCH_AMERICA.WE8ISO8859P1 et les clients windows 2000 servant à accéder à l'application on le charset fucké de Windows. J'ai essayé autant : oci_connect ($username, $password, $db, "FRENCH_FRANCE.AL32UTF8") que oci_connect ($username, $password, $db, "FRENCH_AMERICA.WE8ISO8859P1 ") Mais rien n'y fait pourtant lorsque je fait phpinfo() il est bien indiqué que le serveur Apache est configuré avec un NLS de FRENCH_AMERICA.WE8ISO8859P1 alors en le spécifiant dans la connection la convertion vers le UTF8 devrait se faire correctement non ? J'y perd mon latin avec ces histoires de charset donc si quelqu'un peut m'aider cela serait très apprécié. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 1 ![]() |
Il faut utiliser (UTF8) :
oci_connect ($username, $password, $db, "AL32UTF8") et non : oci_connect ($username, $password, $db, "FRENCH_FRANCE.AL32UTF8") ou encore (ISO) : oci_connect ($username, $password, $db, "WE8ISO8859P15") et non : oci_connect ($username, $password, $db, "FRENCH_AMERICA.WE8ISO8859P15") |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com