echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
$myContent = file_get_contents("modele.rtf" );
//$myContent = str_replace("@nom@",html_entity_decode($nom),$myContent);
//$nom = utf8_encode($nom);
//$nom = base64_encode($nom);
$nom = htmlspecialchars($nom) ;
//$myContent = str_replace("@nom@",$nom,$myContent);
$myContent =mb_ereg_replace("@nom@",$nom,$myContent);
$newFileHandler = fopen("../impression/".$nf.".rtf","a" );
fwrite($newFileHandler,$myContent);
fclose($newFileHandler);
Lors de l’ouverture du fichier les caractères arabe ne s’affiche pas (بسام ) ou (ميعاوي) ou ( ????????)
En éditant manuellement le fichier résultat $nf.RTF j’ai remarqué que la chaine بسام s’écrit \'c8\'d3\'c7\'e3 (c'est quoi d’ailleurs comme codage ?)
je récupère la chaine بسام d'un formulaire ($_POST). encodé en utf-8 (j'ai vérifié avec mb_detect_encoding) ... ..l'enregistrement au niveau de la base de données ne pose pas de problème, mon problème vient du fichier RTF ma fonction écrit ceci sur le fichier:
{\rtlch\fcs1 \ab\af42\alang7169 \ltrch\fcs0 \b\f42\fs24\insrsid11479835\charrsid13048379 بسام} => affichage ميعاوي
alors que, il faut aboutir à ce résultat :
{\rtlch\fcs1 \ab\af42\alang7169 \ltrch\fcs0 \b\f42\fs24\insrsid11479835\charrsid13048379 \'C8\'D3\'C7\'E3}
J'ai trouvé la fonction suivante
function ascii2hex($ascii) {
$hex = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hex.=$byte." ";
}
return $hex;
}
mais au lieu de c8d3c7e3 j'obtiens d8a8d8b3d8a7d985 !!comment passer de بسام à \'C8\'D3\'C7\'E3 ???
y'a t'il un moyen plus simple de fixer l'encodage à UTF-8 directement au niveau du fichier RTF(ou doc) ?
merci de m'aider.