Il est en général recommandé de ne pas stocker en base des caractères HTMLisés, mais plutôt du latin-1, voire du utf-8 (très mal géré par PHP je le rappelle) ; tu peux faire la HTMLisation à l'affichage. En gros, tu forces l'encodage de ta page avec les balises META, et tu fais une bête insertion SQL. Le texte inséré sera alors (normalement) encodé en accord avec l'interclassement par défaut de MySQL (en général latin1_swedish_ci).
Maintenant si tu tiens vraiment à jouer avec de l'encodage de caractères, je te conseille l'extension
mbstring, et notamment les fonctions
mb_convert_encoding et
mb_detect_encoding. Mais tout ceci dépend toujours de l'interclassement MySQL (depuis la version 4.1).