June 26, 2008 Archives

26-06-2008 14:57:00

[Web] Plusieurs charsets dans la meme page

Aujourd'hui je suis tombé sur la nécessité d'appeler un script distant javascript formaté en ISO-8859-1 dans un Joomla qui lui tourne en UTF-8. J'ai tout d'abord testé de transformer Joomla en ISO-8859-1 en modifiant l'appel de la balise meta charset="utf-8". Pour cela j'ai du modifiler le fichier libraries/joomla/factory.php et j'ai modifié la ligne suivante :

'charset'       => 'utf-8',
par
'charset'       => 'iso-8859-1',
Je navigue sur le Joomla et la la page appelant le javascript s'affiche niquel mais le reste du site affiche de partout des erreurs d'encodage vu que la base est en UTF-8 Comme je ne vais pas m'amuser a recréer toute la base MySQL, je vais chercher une autre solution. Je vais donc tenter d'utiliser du dhtml et ajouter avant et apres ma balise script d'appel distant le script suivant :
<script>document.charset="iso-8859-1";</script>
<script src="http://monsite.com/page.html"></script>
<script>document.charset="utf-8";</script>
Cette technique d'attribution dynamique de charset va bien fonctionner avec IE7 mais pas avec mozilla firefox. En cherchant un peu, j'ai trouvé une technique beaucoup plus simple qui est de donner le charset directement dans la balise <script>. On obtient alors :
<script src="http://monsite.com/page.html" 
charset="iso-8859-1"></script>
Et la , Oh miracle, cela marche sous les 2 navigateurs.


Posted by cloud | Permanent Link | Categories: Coding