Vous avez certainement déjà rencontré des chaines dites «quoted printable». Ce formatage un peu particulier est souvent employé par les clients mail ou news par exemple.

Plus généralement, il permet de faire transiter des chaines comportant notamment des caractères accentués en utilisant un encodage sur 7 bits (alors que le jeux accentués va en utiliser 8).

Ainsi, la chaine,

Il est compliqué de convertir des chaînes parfois
Donnera en format "quoted printable"
Il est compliqu=E9 de convertir des cha=EEnes parfois
Un moyen simple de passer d'un format à l'autre sans avoir à se tapper un algo traduisant à la lettre les specs de la RFC2045 (et si vous avez égaré Z6PO capable d'interpreter 6 millions de dialectes...), consiste à utiliser la lib IMAP.

A ce titre, cette librairie dispose de 2 fonctions fort pratiques : imap_8bit() et imap_qprint().

La première permet de convertir une chaine 8 bits en sa correspondance «quoted printable». La seconde effectue l'opération inverse. C'est la fonction connexe de la première en fait :)

Exemple :

<?php
$chaine="Il est compliqué de convertir des chaînes parfois"; 
$quoted=imap_8bit($chaine);
$non_quoted=imap_qprint($quoted);

print $quoted;
print "\n";
print $non_quoted;
print "\n";
?>
Consulter le lien