Conversion des caractères spéciaux en utf-8 pour export dans word ou excel

0/5 (3 avis)

Snippet vu 45 454 fois - Téléchargée 30 fois

Contenu du snippet

Quand on exporte du texte dans excel ou word (fichiers .csv renommés en .xls, fichiers .txt renommés en .doc ...), les caractères spéciaux sont remplacés par d'autres caractères et rendent le texte illisible.
Le charset n'est malheureusement pas modifiable :(
Cette fonction permet donc de rétablir la plupart des caractères spéciaux connus.

Source / Exemple :


$replace = array(
 "Å " => "?", "Å¡" => "?", "Å'" => "?", "Å"" => "?",
 "Ÿ" => "?", "ÿ" => "ÿ", "Ã?" => "À", "à " => "à", 
 "Á" => "Á", "á" => "á", "Ã?" => "Â", "â" => "â",
 "Ã?" => "Ã", "ã" => "ã", "Ã?" => "Ä", "ä" => "ä", 
 "Ã?" => "Å", "Ã¥" => "å", "Ã?" => "Æ", "æ" => "æ",
 "Ã?" => "Ç", "ç" => "ç", "Ã?" => "È", "è" => "è", 
 "Ã?" => "É", "é" => "é", "Ã?" => "Ê", "ê" => "ê",
 "Ã?" => "Ë", "ë" => "ë", "Ã?" => "Ì", "ì" => "ì", 
 "Í" => "Í", "í" => "í", "Ã?" => "Î", "î" => "î",
 "Ï" => "Ï", "ï" => "ï", "Ð" => "Ð", "ð" => "ð", 
 "Ã'" => "Ñ", "ñ" => "ñ", "Ã'" => "Ò", "ò" => "ò",
 "Ã"" => "Ó", "ó" => "ó", "Ã"" => "Ô", "ô" => "ô", 
 "Ã?" => "Õ", "õ" => "õ", "Ã?" => "Ö", "Ã?" => "Ø",
 "ø" => "ø", "Ã?" => "Ù", "ù" => "ù", "Ã?" => "Ú", 
 "ú" => "ú", "Ã?" => "Û", "û" => "û", "Ã?" => "Ü",
 "ü" => "ü", "Ý" => "Ý", "ý" => "ý", "Ã?" => "Þ", 
 "þ" => "þ", "Ã?" => "ß", "ö" => "ö"
);
function changeAccented($text) {
 global $replace;
 foreach($replace as $key => $val)
  $text = str_replace($key, $val, $text);
 return $text;
}

A voir également

Ajouter un commentaire Commentaires
cs_AnDong Messages postés 1 Date d'inscription mardi 14 septembre 2004 Statut Membre Dernière intervention 3 avril 2007
3 avril 2007 à 15:52
Bonjour,
C'est bien beau tout ça mais quand on veut exporter des caractères chinois (codés en utf-8) vers excel on fait comment ?
Je cherche mais ne trouve rien. Vous avez des idées ?
Merci !
Andong
strapouf Messages postés 9 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 16 septembre 2005
16 sept. 2005 à 21:42
Si c'est plus simple, lol. Moi je m'en sert pour envoyer des données dans flash ça marche impeccable.
Utilisateur anonyme
16 sept. 2005 à 14:53
PHP le fait déjà. Non ?
utf8_encode() et utf8_decode()
doc php -->
"utf8_encode code la chaîne data au format UTF-8 , et retourne la version codée."
"utf8_decode décode la chaîne data , en supposant qu'elle est au format UTF-8 , et la convertit au format ISO-8859-1."
Très utile pour utiliser PHP avec Flash...

C'est pas plus simple ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.