Bonsoir,
J'ai script php qui extrait des morceaux de textes, pouvant être de tout type d'encodage, pour ensuite les enregistrer sous forme de requêtes, dans un fichier texte.
Mon problème est que lorsque je transforme mes morceaux de textes en UTF-8, en utilisant la fonction utf8_encode, mon fichier final se trouve bien en UTF-8 sans bom (d'après notepad++), mais tous les caractères ne sont pas encodés correctement (en particulier le symbole euro mais d'autres aussi). En revanche, les caractères accentués sont correctement encodés.
Le code donne à peu près ceci :
Quelle est la bonne fonction à utiliser ou que faut-il faire ?
Je sais que utf8_encode prend uniquement ISO-8859-1 en entrée, alors que mon script est suceptible de récupérer n'importe quel type d'encodage.
Cependant, le problème évoqué a bien lieu sur de l'ISO-8859-1.
De ce fait, si votre solution prend en compte ma contrainte, j'en serais ravis et je vous offrirai...
Merci d'avance !
Modifié par Cybergifle (27 Aug 2007 - 13:21)
J'ai script php qui extrait des morceaux de textes, pouvant être de tout type d'encodage, pour ensuite les enregistrer sous forme de requêtes, dans un fichier texte.
Mon problème est que lorsque je transforme mes morceaux de textes en UTF-8, en utilisant la fonction utf8_encode, mon fichier final se trouve bien en UTF-8 sans bom (d'après notepad++), mais tous les caractères ne sont pas encodés correctement (en particulier le symbole euro mais d'autres aussi). En revanche, les caractères accentués sont correctement encodés.
Le code donne à peu près ceci :
Fichier à mettre en iso pour bien percevoir le problème...
<?php
// Connexion pour utiliser mysql_real_escape_string\\
$name = '€ mais pas sur é';
$name = mysql_real_escape_string(utf8_encode($name));
if($handle = fopen('toto.txt', 'a')) {
$sql = "INSERT INTO test(name) VALUES('$name');";
fwrite($handle, "\n".$sql);
fclose($handle);
}
// Fin de connexion
?>
Même problème avec :
$name = mysql_real_escape_string(mb_convert_encoding($name,"UTF-8"));
Quelle est la bonne fonction à utiliser ou que faut-il faire ?
Je sais que utf8_encode prend uniquement ISO-8859-1 en entrée, alors que mon script est suceptible de récupérer n'importe quel type d'encodage.
Cependant, le problème évoqué a bien lieu sur de l'ISO-8859-1.
De ce fait, si votre solution prend en compte ma contrainte, j'en serais ravis et je vous offrirai...
Merci d'avance !
Modifié par Cybergifle (27 Aug 2007 - 13:21)