[encoding]d'un charset a un autre ;)
bonjour,
Travaillant sur un projet multilingue, je viens de chercher un peu sur internet pour trouver un moyen de parser des fichiers d'un encodage a un autre.
Plus exactement, comment passer du cyrillic(windows-1251) a de l'utf8.
Ne trouvant pas mon bonheure, je me suis dit que ca pourrait en interresser.
Voila une fonction toute bete, mais tres puissante :
Code:
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
|
function parse_encoding ($fichier,$oldCharset,$newCharset){
if( ! $read = @fopen($fichier,'rb')){
$result= "Impossible d'ouvrir le fichier";
} else {
if(! $contenu = @fread($read, filesize($fichier))) {
$result = "Impossible de lire le fichier";
} else {
$str =[b] mb_convert_encoding[/b]($contenu, $newCharset,$oldCharset);
$str = str_replace($oldCharset,$newCharset,$str);
$taille = strlen($str);
fclose($read);
if( ! $fp = @fopen($fichier,'w')) $result = "Impossible d'ouvrir le fichier en ecriture";
else {
fwrite($fp,$str,$taille);
fclose($fp);
$result = "changement de charset ok sur ".$fichier;
}
}
}
print("
<u>resultat de l'encodage :</u><br>
charset de depart : ".$oldCharset."<br>
charset d'arrivee : ".$newCharset."<br>
fichier : ".$fichier."<br>
resultat : ".$result."<br>".$str);
} |
Voila.
ps : dsl pour les accents, qwerty oblige :|