par
Kran » 06 oct. 2009, 12:37
Merci bien pour cette précision fort à propos Mr BRITO !
A la demande de stopher, Voici-voila le petit bout de code qui m'a permis de tester :
$montexte=' toto é pà content > ';
$conn = odbc_connect('PicoDoc','','') or die("dead conn");
$ma_cle='ma_cle_1';
$montexte_a_inserer=strtr($montexte , get_html_translation_table(HTML_ENTITIES) );
$sql = 'INSERT INTO Verbose ([value],[verbose]) VALUES (\''.$ma_cle.'\',\''.$montexte_a_inserer.'\')';
odbc_exec($conn,$sql) or die("<br/>INSERT 1 : Erreur ".odbc_error($conn)."<br/>".odbc_errormsg($conn)."<br/>".$sql );
$ma_cle='ma_cle_2';
$montexte_a_inserer=htmlentities( $montexte , ENT_QUOTES , 'UTF-8' );
$sql = 'INSERT INTO Verbose ([value],[verbose]) VALUES (\''.$ma_cle.'\',\''.$montexte_a_inserer.'\')';
odbc_exec($conn,$sql) or die("<br/>INSERT 2 : Erreur ".odbc_error($conn)."<br/>".odbc_errormsg($conn)."<br/>".$sql );
$ma_cle='ma_cle_3';
$montexte_a_inserer=strtr( $montexte , get_html_translation_table(HTML_SPECIALCHARS) );
$sql = 'INSERT INTO Verbose ([value],[verbose]) VALUES (\''.$ma_cle.'\',\''.$montexte_a_inserer.'\')';
odbc_exec($conn,$sql) or die("<br/>INSERT 3 : Erreur ".odbc_error($conn)."<br/>".odbc_errormsg($conn)."<br/>".$sql );
$ma_cle='ma_cle_4';
$montexte_a_inserer=htmlspecialchars( $montexte , ENT_QUOTES , 'UTF-8' );
$sql = 'INSERT INTO Verbose ([value],[verbose]) VALUES (\''.$ma_cle.'\',\''.$montexte_a_inserer.'\')';
odbc_exec($conn,$sql) or die("<br/>INSERT 4 : Erreur ".odbc_error($conn)."<br/>".odbc_errormsg($conn)."<br/>".$sql );
odbc_close($conn);
Et voici-voila ce que j'obtiens dans ma base :
- ma_cle_1 : toto é pà content >
ma_cle_2 : toto é pà content >
ma_cle_3 : toto é pà content >
ma_cle_4 : toto é pà content >
Et sur-ce, une petite constatation supplémentaire : Si j'enlève les 'UTF-8' j'obtiens en effet le comportement attendu

...
Ce que je ne comprends pas vraiment c'est que dans le même contexte (même serveur web, même type de DBB, mêmes en-têtes HTML, même tout quoi...) j'obtenais bien le comportement attendu avec la fonction telle que je l'ai écrite en premier lieu sur une autre appli...
Explication

?
Merci bien pour cette précision fort à propos Mr BRITO !
A la demande de stopher, Voici-voila le petit bout de code qui m'a permis de tester :
[php]
$montexte=' toto é pà content > ';
$conn = odbc_connect('PicoDoc','','') or die("dead conn");
$ma_cle='ma_cle_1';
$montexte_a_inserer=strtr($montexte , get_html_translation_table(HTML_ENTITIES) );
$sql = 'INSERT INTO Verbose ([value],[verbose]) VALUES (\''.$ma_cle.'\',\''.$montexte_a_inserer.'\')';
odbc_exec($conn,$sql) or die("<br/>INSERT 1 : Erreur ".odbc_error($conn)."<br/>".odbc_errormsg($conn)."<br/>".$sql );
$ma_cle='ma_cle_2';
$montexte_a_inserer=htmlentities( $montexte , ENT_QUOTES , 'UTF-8' );
$sql = 'INSERT INTO Verbose ([value],[verbose]) VALUES (\''.$ma_cle.'\',\''.$montexte_a_inserer.'\')';
odbc_exec($conn,$sql) or die("<br/>INSERT 2 : Erreur ".odbc_error($conn)."<br/>".odbc_errormsg($conn)."<br/>".$sql );
$ma_cle='ma_cle_3';
$montexte_a_inserer=strtr( $montexte , get_html_translation_table(HTML_SPECIALCHARS) );
$sql = 'INSERT INTO Verbose ([value],[verbose]) VALUES (\''.$ma_cle.'\',\''.$montexte_a_inserer.'\')';
odbc_exec($conn,$sql) or die("<br/>INSERT 3 : Erreur ".odbc_error($conn)."<br/>".odbc_errormsg($conn)."<br/>".$sql );
$ma_cle='ma_cle_4';
$montexte_a_inserer=htmlspecialchars( $montexte , ENT_QUOTES , 'UTF-8' );
$sql = 'INSERT INTO Verbose ([value],[verbose]) VALUES (\''.$ma_cle.'\',\''.$montexte_a_inserer.'\')';
odbc_exec($conn,$sql) or die("<br/>INSERT 4 : Erreur ".odbc_error($conn)."<br/>".odbc_errormsg($conn)."<br/>".$sql );
odbc_close($conn);
[/php]
Et voici-voila ce que j'obtiens dans ma base :
[list]
ma_cle_1 : toto é pà content >
ma_cle_2 : toto é pà content >
ma_cle_3 : toto é pà content >
ma_cle_4 : toto é pà content >
[/list]
Et sur-ce, une petite constatation supplémentaire : Si j'enlève les 'UTF-8' j'obtiens en effet le comportement attendu :? ...
Ce que je ne comprends pas vraiment c'est que dans le même contexte (même serveur web, même type de DBB, mêmes en-têtes HTML, même tout quoi...) j'obtenais bien le comportement attendu avec la fonction telle que je l'ai écrite en premier lieu sur une autre appli...
Explication :( ?