Bonjour,
voila j'essaie de monter un wiki avec XWiki et j'ai récupéré un tableau de définition à intégrer dans le wiki.
J'ai réussi à créer avec perl la liste des champs à insérer dans la table mais dans les définition il y a souvent des caractères spéciaux tels que é, à, ' ou €.
J'ai réussi afficher les côtes en les doublant et les accents en encodant en UTF-8 (ma table est en latin1 donc je fais un "SET NAMES 'UTF8'" ). Mais pour le € il refuse les requête.

voila un exemple de requête refusée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
use DBI;
use CGI;
use Encode::Encoder qw(encoder);
 
$co = new CGI;
print $co->header;
 
$database="test";
$hostname="localhost";
$login = "root";
$mdp = "xxxx";
 
 
$dsn = "DBI:mysqlPP:database=$database;host=$hostname;port=3308";
$dbh = DBI->connect($dsn, $login, $mdp) or die "Echec connexion";
 
$query = "SET NAMES 'UTF8'";
$sth1 = $dbh->prepare($query);
 
$sth1->execute();
$sth1 -> finish;
$chaine = "80536434, 'Lexique.Arbitrage', 'Arbitrage', 'Arbitrage', '', 'fr', 0, '2008-04-15 18:48:14', '2008-04-15 18:48:14', '2008-04-15 18:48:14', 'XWiki.Root', 'XWiki.Root', 'XWiki.Root', 'Lexique', '1 Arbitrage
 
Changer le FCPE choisi pour son épargne est possible suivant l''évolution du marché mobilier. Par exemple : quitter un FCPE exposé pour un FCPE équilibré ou l''inverse. Les frais de transfert sont de 2 € par opération.
 
Source : [Glossaire Systalians>http://10.67.92.110:8080/xwiki/bin/download/Lexique/WebHome/GlossaireSystalians.xls]', '1.1', '', 'WebHome', '', 2, '', '', '', b'0'";
$chaine = Encode::encode("utf8", $chaine);
$requete = "INSERT INTO xwikidoc VALUES(".$chaine.")";
$sth = $dbh->prepare($requete);
$sth->execute();
 
$sth -> finish;
$dbh -> disconnect;
et voila l'erreur levée :
DBD::mysqlPP::st execute failed: #HY000Incorrect string value: '\xC2\x80 par...'
for column 'XWD_CONTENT' at row 1 at test_sql.pl line 31.
Ma config :
Windows 2003 Server
MySQL Server 5.0
ActivePerl 5.10

Si quelqu'un à une solution je suis preneur.

Merci d'avance.

Thundara