Convertir les caractères non standards de Microsoft Word en ASCII

Sur plusieurs de mes sites web dont la programmation est personelle (sans utilisation de logiciel blogue ou système de gestion de contenu), les visiteurs peuvent laisser un commentaire sur un article. L’encodage de caractère des pages de ces sites (charset) est généralement du type iso-8859-1 en XHTML, comme suit:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Contrairement à l’encodage UTF-8, il ne permets pas l’utilisation directe de plusieurs caractères qu’on retrouve dans Microsoft Word et le problème est que certains visiteurs vont écrire leurs commentaires dans Word et copier/coller ça dans la boîte texte pour poster, ce qui crée des pages non standards en XHTML 1.0.

Après pas mal de recherche, j’ai finalement réussi à écrire une petite fonction PHP pour convertir les caractères bizarres de Word en caractère ASCII standard, inspiré par un commentaire sur la fonction get_html_translation_table dans la documentation PHP.

Le code est le suivant:

1
2
3
4
5
function msword_text_to_ascii($str){
 
	$str = str_replace(array("\x82", "\x84", "\x85", "\x91", "\x92", "\x93", "\x94", "\x95", "\x96",  "\x97",  "\xBB",  "\xAB",  "\xB4",  "\x60"), array("\"", "\"", "...", "'", "'", "\"", "\"", "*", "-", "--", "\"", "\"", "\'", "\'"), $str);
	return $str;
}

Pour ajouter d’autres caractères ASCII étendu ANSI, référez-vous à ANSI character set and equivalent Unicode and HTML characters [en].

Partager cet article:

  • del.icio.us
  • Facebook
  • StumbleUpon
  • Twitter
  • LinkedIn

Catégories: Programmation web | 1 commentaire »
Les tags de cet article:

Note: Merci pour vos commentaires, j'apprécie ceux qui partagent leurs avis et leurs expériences de webmestre, ou s'il y a lieu, indiquent une erreur dans mes tutoriels, mais je ne peux évidemment pas faire de support technique pour votre site, alors veuillez éviter d'en faire la demande dans cette section.

Un commentaire pour “Convertir les caractères non standards de Microsoft Word en ASCII”

  1. Oelita dit: 17 août 2009 at 8:20

    Cool, la fonction que je cherchais pour ces fichus admins de jeux qui me collent du texte de word pour publier des news !

Laisser un commentaire