Bonjour !

je voudrais bien vous demander votre avis pour un petit mystère :
J'ai une function qui affiche un texte, ou un autre, selon le choix d'utilisateur.
(Ces différents textes sont directement à l'intérieur de cette function, on y accède par des if...)

  • Ca marche très bien si cette function est déclaré sur la page html elle même.
  • Ca affiche des losanges noirs avec "?" si je mets cette function sur un fichier externe.


La page html contient la balise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
Dans le cas ou je choisi dans le navigateur (Safari) encodage du texte : "Occidental (Mac OS Roman)", tout s'affiche bien. Si il est réglé "par défaut" ou sur "UTF-8", ça ne marche pas...

Le problème c'est arrangé si j'ai remplacé à la main par ex. "ê" par "\u00EA". Bien, mais je préfère d'éviter de tout remplacer manuellement...!

J'ai aussi essayé de rajouter un encodage suivant sur le fichier externe, mais ça a donné juste d'autres bizzarreries :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
//	Librairie by The Rubik's Man © 2005-2006
 
var UTF8_tool = function (){}
 
	UTF8_tool.encode = function (string)
	{
		var string = string.replace(/\r\n/g,"\n");;
		var utftext = "";
		for (var n = 0; n < string.length; n++)
		{
			var c = string.charCodeAt(n);
			if (c < 128) 
			{
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048))
			{
		utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else
			{
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
		}
		return utftext;
  };
(Avec cet encodage par ex "ê" devient "ê" dans le code et toujours n'importe quoi à l'affichage).

Vous avez une idée d'ou vient le problème ?
Merci infiniment d'avance !

Tooomas