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 : 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
 
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