2010-03-06 4 views
2

J'ai le problème suivant:fichiers JavaScript chargés et Dynamiquement caractères non-ASCII

<script type="text/javascript"> 
alert("1. ČĆŽŠĐčćžšđ"); 
</script> 

<script type="text/javascript" src="Tst.js"></script> 

<script type="text/javascript"> 
var pScript = document.createElement("script"); 
pScript.type = "text/javascript"; 
pScript.src = "Tst.js"; 
pScript.charset = "windows-1250"; 
$("body").append(pScript); 
</script> 

(. Ce sont des personnages croates)

Contenu de Tst.js est:

alert("2. ČĆŽŠĐčćžšđ"); 

Sortie de ce script dans FireFox (et Safari, donc j'ai conclu que ce n'est pas le problème avec le navigateur, mais mon code):

1. ČĆŽŠĐčćžšđ 
2. ČĆŽŠĐčćžšđ 
2. �Ǝ���枚� 

Le jeu de caractères sur la page principale appelant ce code est Windows-1250.

Je ne comprends pas pourquoi quand je l'appelle Tst.js statiquement (par <script src="Tst.js" type="text/javascript"></scipt>) les caractères sont affichés normale, mais quand j'inclus dynamiquement Tst.js les personnages aller bannanas ...

Et malheureusement, je peux t port tout mon code à UTF-8.

Un conseil?

+0

Voir ma mise à jour de la réponse. –

Répondre

2

2ème mise à jour: Spécifier le codage dans l'en-tête de type de contenu du fichier JavaScript a fait l'affaire - pour une raison quelconque!

Mise à jour: Vous définissez le jeu de caractères après avoir chargé le script. Essayez

<script type="text/javascript"> 
var pScript = document.createElement("script"); 
pScript.type = "text/javascript"; 
pScript.charset = "windows-1250"; 
pScript.src = "Tst.js"; 
$("body").append(pScript); 
</script> 
+0

Oui, les deux fichiers sont dans Windows-1250. C'est pourquoi c'est si étrange. – Stazh

+0

Maintenant, j'ai changé l'ordre des attributs charset et src de sorte que le jeu de caractères est avant src mais le problème persiste. – Stazh

+0

@Stazh Vraiment étrange. Que se passe-t-il si vous ajoutez 'charset =" windows-1250 "' à l'exemple 2 (où vous incluez le script en utilisant une balise de script)? –

Questions connexes