Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-04-2009 17:20:15

kaboume
Membre
Lieu: Bagneux
Date d'inscription: 21-09-2007
Messages: 24
Site web

[Zend_Db][v1.7] Insertion de données Unicode dans MS-SQL 2005

Hello,

Je galère depuis quelques jours pour pouvoir dialoguer en Unicode avec ma base Sql Server.

Configuration :
PHP exécuté sur un serveur Linux avec freetds d'installé. En face, base SQL Server 2005 sur un Windows.

Conf Freetds :

Code:

[ma_connexion_utf8]
        host = mon_hote_sql
        port = 1433
        client charset = UTF-8
        tds version = 7

Ma page PHP est en Unicode, et je fais une requête de ce type :

Code:

$params = array(
    'host'        =>'ma_connexion_utf8',
    'pdoType'    =>'dblib',
    'dbname'    =>'MA_BASE',
    'username'    =>'mon_login',
    'password'    =>'mon_password'            
);
        
$db = Zend_Db::factory('Pdo_Mssql', $params);
 
$sql   = "INSERT INTO... VALUES ('1',N'éâtôtà','6655'...
 
$stmt = new Zend_Db_Statement_Pdo($db, $sql);

Mes champs sont en NVARCHAR en base.

Quand je regarde le contenu de ma table vi SQL Server Managment Studio Express, mes données ressemblent à :
éâtôtÃ*

Est-ce que j'aurais oublié de paramétrer un truc ?

Merci de votre aide.

Hors ligne

 

#2 02-04-2009 10:54:56

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Db][v1.7] Insertion de données Unicode dans MS-SQL 2005

dans MySQL il y a beaucoup de niveau de gestions des caractères
la tu simplement dit à MySQL que ta connexion utilise UTF8 (et pas unicode ce n'est pas la même chose)
dans MYSQL tu as
Le serveur
La base
La table
Le champs
La connexion
le client

chacun d'eux peut avoir son jeu de caractères et même une collation (variation sur le jeux)

si tu veux utiliser UFT8 de façon homogène il te faut une des conf suivante
Le serveur ???
La base ???
La Table ???
Le champs UTF8
La connexion UTF8
le client UTF8
ou
Le serveur ????
La base ???
La Table UTF8
Le champs pas spécifié
La connexion UTF8
le client UTF8
ou
Le serveur ????
La base UTF8
La Table pas spécifié
Le champs pas spécifié
La connexion UTF8
le client UTF8

dans ton cas c'est peut être simplement SQL Server Managment Studio Express (Le client) qui n'est pas UTF8
A+JYT

Hors ligne

 

#3 02-04-2009 13:02:46

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_Db][v1.7] Insertion de données Unicode dans MS-SQL 2005

Hello,

@sekaijin: MSSQL <= avec un S, wink mais j'imagine (enfin j'espère) que ce que tu dis s'applique aussi.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#4 02-04-2009 15:16:34

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Db][v1.7] Insertion de données Unicode dans MS-SQL 2005

oops

mais effectivement il faut une cohérence de bout en bout sur la chaine
je ne me souviens pas que MsSQL traite le charset au niveau du champs
mais pour le reste même topo

A+JYT

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages