OVH Cloud OVH Cloud

JavaScript externe et charset

16 réponses
Avatar
Pierre Goiffon
[Suivi positionné sur f.c.l.javascript]

Pour des questions d'application multilangue, j'ai besoin de sortir des
chaines dans des variables déclarées dans un JavaScript externe. Ce
JavaScript externe est généré côté serveur et contient des choses comme :

var KCopier = "Copier";
var KColler = "Coller";

etc.

Le JavaScript externe est renvoyé avec cet entête :

Content-Type: application/x-javascript; charset: windows-1252

Ma page est servit en UTF-8 et il ne faut pas que cela change. Le script
externe quant à lui, je suis bien obligé de le renvoyer en Windows-1252
car je ne peut pas faire de transcodage côté serveur (contraintes dues
au produit utilisé)

Il se trouve que le charset tel que placé dans mon entête ne produit
aucun effet ! J'ai en effet des caractères incohérents sur les accents
si je laisse tel quel... Par contre si je spécifie dans l'appel au
JavaScript externe l'attribut charset="windows-1252" alors tout devient
OK. C'est comme si le sous type charset dans l'entête n'était absolument
pas pris en compte ! Or je préférerai bien entendu me passer de
l'attribut charset et tout déclarer dans l'entête HTTP...

Est-ce que quelqu'un aurait une idée ?

6 réponses

1 2
Avatar
unbewusst.sein
ASM wrote:

Je ne sais si les Macs pourraient être concernés par ta production ...
il faut savoir que Safari (tt au moins le mien) fait, ou pourrait bien
faire, comme ton IE6
(il semble bien aimer qu'on lui mette et remette les points sur les i)


je ne saurais dire pour safari/webkit mais j'ai pu constater avec
Firefox 2 que mes pages xhtml, servies en :

application/xhtml+xml

par Apache si, par mégarde d'un copier coller le content-type à
l'intérieur du document est spécifié en html alors ça fout le bronx,
ajax et/ou xslt se passent mal...


question, j'écris tjs mes pages en UTF-8, il y a une directive Apache
pou servir mes pages en UTF-8 ou est-ce inutile compte-tenu du fait que
justement c'est de l'UTF-8 (en XML il est inutile de déclarer le charset
si c'est de l'UTF-8) <-- je ne parle que des pages xhtml...
--
Une Bévue

Avatar
O.L.
Il se trouve que Olivier Miakinen a formulé :
[snip]
P.-S. : à moins que tu ne sois le propriétaire du nom de domaine
undefined.net, "Null Interactive", ou l'un de ses hébergés, il
serait sympa de changer ton adresse en .


C'est fait :)

Avatar
Olivier Miakinen
Le 24/02/2007 16:24, O.L. m'a répondu :

Il serait sympa de changer ton adresse en .


C'est fait :)


Un grand merci pour cela.

[ suivi positionné en privé ]


Avatar
Pierre Goiffon
Une Bévue wrote:
je ne saurais dire pour safari/webkit mais j'ai pu constater avec
Firefox 2 que mes pages xhtml, servies en :

application/xhtml+xml

par Apache si, par mégarde d'un copier coller le content-type à
l'intérieur du document est spécifié en html alors ça fout le bronx,
ajax et/ou xslt se passent mal...


question, j'écris tjs mes pages en UTF-8, il y a une directive Apache
pou servir mes pages en UTF-8 ou est-ce inutile compte-tenu du fait que
justement c'est de l'UTF-8 (en XML il est inutile de déclarer le charset
si c'est de l'UTF-8) <-- je ne parle que des pages xhtml...


Est-ce que vous avez conscience que ce que vous avez écris est
parfaitement inintelligible ?

Avatar
Pierre Goiffon
O.L. wrote:
Dans le JS externe, tu encode tes données en Base64 pour qu'ielles
puissent franchir la barrière de la transmission web :

var KCopier = "Copier";
var KColler = "Coller";

devient :

var js_code =
"dmFyIEtDb3BpZXIgPSAiQ29waWVyIjsNCnZhciBLQ29sbGVyID0gIkNvbGxlciI7DQo=";

et ensuite dans ta page web tu désencode et tu exécute le code (après
avoir récupéré une fonction base64_decode sur le net) :
<script src=jsexterne.js></script>
<script>
eval(base64_decode(js_code));
</script>


Oui en effet ça aurait été une solution en cas de gros blocage - enfin
j'aurais sans doute plutôt choisis Quoted Printable

Avatar
unbewusst.sein
Pierre Goiffon wrote:


Est-ce que vous avez conscience que ce que vous avez écris est
parfaitement inintelligible ?


non, pas du tout.
--
Une Bévue

1 2