[debia] Problèmes de caractères "œ", "€" avec php 5 et MS sql serveur

Problèmes de caractères "œ", "€" avec php 5 et MS sql serveur [debia] - Installation - Linux et OS Alternatifs

Marsh Posté le 27-10-2008 à 17:04:03    

:hello:  
 
Il y a un truc que je ne comprends pas. J'ai installé debian stable, apache2 et php5. En utilisant php5-sybase, j'arrive sans soucis à faire des requêtes sur le serveur sql serveur 2000.
Cependant, si je le réusltat comporte des caractères particuliers "œ", "€", etc.. j'ai un carré avec un point d'interrofation qui est retourné. Non pas dans le code html affiché, mais dans le source de la page. Ce n'est pas un problème d'interprétation de ce caractère par un navigateur.
 
J'ai configuré apache2 pour que le langage par défaut soit iso-8859-15. Ensuite j'ai fait les tests suivant :  
 
"œ" directement dans le code html de la page => ça fonctionne
echo "œ"; ==> ça fonctionne
$req    = mssql_query(" select  'œ'   from    dbo.test" ); et en parcourant le résultat ==> ça fonctionne
 
$req    = mssql_query(" select  'œ', *   from    dbo.test" ); ==> ça fonctionne pour 'œ' mais pas pour le champ suivant qui lui contient "œ € œ" dans la table "dbo.test".  
 
J'ai carré avec un point d'intérrogation qui s'affiche. Les accents dans les champs varchar de la table s'affichent cependant bien. On dirait en fait qu'il est "coincé" en iso-8859-1 pour les champs textes des tables. Pourtant celle-ci contiennent bien des caractère iso-8859-15.
 
Ça fait trois heures que je suis dessus, et là je sèche..
 
Si quelqu'un a une suggestion à me faire, je l'en remercie d'avance. Est-ce que je suis contraint d'utiliser freetds pour ça ?
 
J'ai fait un test avec freebsd. Aucun soucis :/ mais j'utilise freetds :/ Ça peut venir de là ?


Message édité par VenerZen le 27-10-2008 à 17:18:12

---------------
"L'abus de modération, nuit gravement à la consommation"
Reply

Marsh Posté le 27-10-2008 à 17:04:03   

Reply

Marsh Posté le 27-10-2008 à 20:30:49    

Passe tout en utf8.
Mais c'est lourd comme changement.

Reply

Marsh Posté le 27-10-2008 à 21:32:31    

Tu veux dire, la base de données ? Impossible. Les changements seraient trop lourd pour l'ensemble de l'applicatif qui ce sert de ces données :/ La base doit faire une centaine de Go environ.  
J'ai presque envie de tout passer sous Freebsd. Le soucis, c'est que ce serveur web est un domU et il faudrait que je passe en current :/


---------------
"L'abus de modération, nuit gravement à la consommation"
Reply

Marsh Posté le 28-10-2008 à 12:41:31    

Après installation des drivers freetds, j'ai toujours le même soucis :/
Je sature..
Parcontre, j'ai un message d'erreur maintenant :  

Citation :


Warning: mssql_connect() [function.mssql-connect]: WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?')
Warning: mssql_query() [function.mssql-query]: WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?').


 
Je crois que j'approche tout de même. Leur bases semblent être en windows-1252 :/
En passant "mssql.charset="windows-1252", je n'ai plus l'erreur à la connexion, mais seulement à l'exécution de la requête..


Message édité par VenerZen le 28-10-2008 à 13:28:45

---------------
"L'abus de modération, nuit gravement à la consommation"
Reply

Marsh Posté le 29-10-2008 à 11:12:16    

J'ai fini par trouver...
 
En gros, il faut :

  • installer les drivers tds et créer le paquet php4-mssql/php5-mssql
  • virer le driver sybase php4-sybase/php5-sybase
  • modifier le fichier freetds.conf comme ça  
Citation :

[sqlserver]
        host    = *.*.*.*
        port    = 1433
        tds version     = 8
        client charset     = CP1252


  • modifier le php.ini comme ça :  
Citation :

mssql.charset = CP1252


  • modifier le fichier apache2.conf et ajouter ça :
Citation :

AddDefaultCharset Windows-1252


  • dpkg-reconfigure locales et cocher la première case tout en haut.  


Ensuite ça passe..
3 jours bordel :/


Message édité par VenerZen le 29-10-2008 à 14:08:50

---------------
"L'abus de modération, nuit gravement à la consommation"
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed