Pb encodage des caractères IE et FF

Pb encodage des caractères IE et FF - HTML/CSS - Programmation

Marsh Posté le 26-10-2007 à 21:34:31    

Bonjour,
Voila j'ai un petit soucis d'encodage.
J'ai récupéré une appli de chat en javascript et un des fichiers est encoder, en fait illisible. Mais ca tourne, je pense que c'est juste pour proteger la source.
Dans mon htaccess je défini le charset a iso-8859-1 et dans la page  html qui appelle le script avec   <meta content="text/html; charset=iso-8859-1" http-equiv="content-type"/> .
Ca passe nickel sous ff, et par contre sous IE7 l'encodage est sur sélection automatique (et apparemment c'est latin 9 qui est choisi, grisé avec un point gauche) , j'ai des erreurs de scripts dans la page "brouillé" (normal, y a plein de caracteres speciaux...) , mais si je le passe en  "Europe occidental (windows)" ca marche.
Y a t'il une solution pour que la sélection automatique de IE soit directement europe occidental et non latin 9?
En remerciant ceux qui se pencheront sur mon problème
 


---------------
Topic vente DDR / réseaux
Reply

Marsh Posté le 26-10-2007 à 21:34:31   

Reply

Marsh Posté le 27-10-2007 à 00:37:04    

le fichier Javascript doit etre enregistré en UTF-8 et basta

Reply

Marsh Posté le 27-10-2007 à 09:30:22    

ok je vais tenter ca,je te tiens au courant.
 merci.


---------------
Topic vente DDR / réseaux
Reply

Marsh Posté le 27-10-2007 à 09:53:41    

re, en UTF 8 (sans signature, dans notepad2) ca ne marche pas non plus sur IE mais ca marche sur ff.
Par contre, est ce que c'était une solution pour faire tourner simplement le script ou alors est ce que le problème de sélection de l encodage de la page pouvait être dû à ça (ce a quoi je n'aurai jamais pensé, j 'avoue) ?
Merci


---------------
Topic vente DDR / réseaux
Reply

Marsh Posté le 27-10-2007 à 10:15:06    

Voila le fichier incriminé :
http://www.scambia-workplace.com/f [...] charger=ok
Et les erreurs que j'ai :
Line: 2
Character: 1
Code: 0
Error Message: Caractère incorrect
 
Puis  
Line: 2
Character: 1
Code: 0
Error Message: Caractère incorrect
Et enfin  
Line: 451
Character: 3
Code: 0
Error Message: 'cssWindow' est indéfini.
 
Bien que les erreurs de IE m'indiquent le fichier php, je suis sur la piste du css-window-p.js car la methode indéfini cssWindow doit surement etre défini dans ce fichier, elle ne l'est pas ailleurs.
 
Si qqun a une technique de reverse engineering sur ce type de brouillage, si c'est autorisé, je suis preneur.
Si ca ne l'est pas, c'est pas grave, j'éditerai mon post si nécessaire.
 
Enfin je pense que ce qui resoudrai mon probleme le plus simplement c est de trouvé une solution a la mauvaise selection par defaut de l'encodage dans IE pour la page HTML.
Donc je devrais plutot suivre cette piste la.
 
Si qqun a une idée.
 
 
 


---------------
Topic vente DDR / réseaux
Reply

Marsh Posté le 27-10-2007 à 18:16:09    

Haha, comme quoi, quelque soit le langage on peut faire des trucs de gros porc.
 
Bon, si j'étais toi, je flanquerai ce module de merde à la poubelle illico et remettrai ça d'équerre. Cette bouse est un champ de mine imbittable, codé par les pieds, tout ça pour masquer un pauvre module de qqs Ko. Je ne sais pas de quel délire de persécution se croit victime l'auteur, mais ce n'est même plus de la paranoïa à ce niveau.
 
Bon si tu veux le code source le voilà (pas dit qu'il y ait tout) :
 
Cela dit :  

  • Je ne suis pas sûr que la license autorise la modification de ce code (la "décompacter" il ne peut pas l'interdire, vu que le navigateur est obligé de le faire).
  • Vu la taille de la fonction, le plus simple serait de la refaire.


Code :
  1. function cssWindow(c) {
  2. var me = this;
  3. this.topic = c.topic ? c.topic : "";
  4. this.w = c.width ? c.width : "";
  5. this.h = c.height ? c.height : "";
  6. this.x = c.x ? c.x : 0;
  7. this.y = c.y ? c.y : 0;
  8. this.z = c.z ? c.z : 0;
  9. this.c = c['class'] ? c['class'] : null;
  10. this.cb = null;
  11. this.table = document.createElement("table" );
  12. this.table.style.width = this.w;
  13. this.table.style.height = this.h;
  14. this.table.cellSpacing = "0";
  15. this.table.cellPadding = "0";
  16. this.table.style.left = this.x;
  17. this.table.style.top = this.y;
  18. this.table.style.zIndex = this.z;
  19. this.thead = document.createElement("thead" );
  20. this.tfoot = document.createElement("tfoot" );
  21. this.tbody = document.createElement("tbody" );
  22. this.trhead = document.createElement("tr" );
  23. this.trfoot = document.createElement("tr" );
  24. this.trbody = document.createElement("tr" );
  25. this.tdhead = document.createElement("td" );
  26. this.td1head = document.createElement("td" );
  27. this.td2head = document.createElement("td" );
  28. this.tdfoot = document.createElement("td" );
  29. this.td1foot = document.createElement("td" );
  30. this.td2foot = document.createElement("td" );
  31. this.tdbody = document.createElement("td" );
  32. this.td1body = document.createElement("td" );
  33. this.td2body = document.createElement("td" );
  34. this.thead = this.table.appendChild(this.thead);
  35. this.tfoot = this.table.appendChild(this.tfoot);
  36. this.tbody = this.table.appendChild(this.tbody);
  37. this.trhead = this.thead.appendChild(this.trhead);
  38. this.trfoot = this.tfoot.appendChild(this.trfoot);
  39. this.trbody = this.tbody.appendChild(this.trbody);
  40. this.tdhead = this.trhead.appendChild(this.tdhead);
  41. this.td1head = this.trhead.appendChild(this.td1head);
  42. this.td2head = this.trhead.appendChild(this.td2head);
  43. this.tdfoot = this.trfoot.appendChild(this.tdfoot);
  44. this.td1foot = this.trfoot.appendChild(this.td1foot);
  45. this.td2foot = this.trfoot.appendChild(this.td2foot);
  46. this.tdbody = this.trbody.appendChild(this.tdbody);
  47. this.td1body = this.trbody.appendChild(this.td1body);
  48. this.td1body.style.width = this.w;
  49. this.td1body.style.height = this.h;
  50. this.td2body = this.trbody.appendChild(this.td2body);
  51. this.tdhead.appendChild(document.createTextNode(" " ));
  52. this.td2head.appendChild(document.createTextNode(" " ));
  53. this.doHide = function () {
  54.  if (me.tbody.style.display == "none" ) {
  55.   me.table.style.height = me.h;
  56.   me.table.style.width = me.w;
  57.   me.tfoot.style.display = "";
  58.   me.tbody.style.display = "";
  59.  } else {
  60.   me.table.style.height = "";
  61.   me.table.style.width = me.w;
  62.   me.tbody.style.display = "none";
  63.   me.tfoot.style.display = "none";
  64.  }};
  65. this.doClose = function () {
  66.  if (me.cb) {
  67.   me.cb();
  68.  }me.table.parentNode.removeChild(me.table);
  69. };
  70. if (c.drag) {
  71.  this.drag = new Drag;
  72.  this.drag.init(this.thead, this.table);
  73. } this.setClass = function (cl) {
  74.  me.table.className = cl;
  75.  me.thead.className = cl;
  76.  me.tfoot.className = cl;
  77.  me.tbody.className = cl;
  78.  me.trhead.className = cl + "head";
  79.  me.trfoot.className = cl + "foot";
  80.  me.trbody.className = cl + "body";
  81.  me.tdhead.className = cl + "head";
  82.  me.td1head.className = cl + "head1";
  83.  me.td2head.className = cl + "head2";
  84.  me.tdfoot.className = cl + "foot";
  85.  me.td1foot.className = cl + "foot1";
  86.  me.td2foot.className = cl + "foot2";
  87.  me.tdbody.className = cl + "body";
  88.  me.td1body.className = cl + "body1";
  89.  me.td2body.className = cl + "body2";
  90. };
  91. if (this.c) {
  92.  this.setClass(this.c);
  93. } this.setDOM = function (obj, ct) {
  94.  switch (typeof ct) {
  95.  case "number":
  96.  case "string":
  97.   return obj.appendChild(document.createTextNode(ct));
  98.  case "object":
  99.   return obj.appendChild(ct);
  100.  default:
  101.   alert("type not supported: " + typeof ct);
  102.   return null;
  103.  }};
  104. this.setBody = function (ct) {
  105.  me.clear(me.td1body);
  106.  return me.setDOM(me.td1body, ct);
  107. };
  108. this.setFoot = function (ct) {
  109.  me.clear(me.td1foot);
  110.  return me.setDOM(me.td1foot, ct);
  111. };
  112. this.setHead = function (ct) {
  113.  me.clear(me.td1head);
  114.  return me.setDOM(me.td1head, ct);
  115. };
  116. this.clear = function (dom) {
  117.  while (dom.firstChild) {
  118.   dom.removeChild(dom.firstChild);
  119.  }};
  120. this.show = function () {
  121.  document.body.appendChild(me.table);
  122. };
  123. this.get = function () {
  124.  return me.table;
  125. };
  126. }


 
 

Reply

Marsh Posté le 27-10-2007 à 19:03:43    

waouw, merci beaucoup.
c'est sur que comme ca, c'est comprehensible et donc optimisable.
(juste en passant, comment tu as fait pour l'avoir en clair?)
En tout cas merci, ca va vraiment beaucoup m aider.


---------------
Topic vente DDR / réseaux
Reply

Marsh Posté le 27-10-2007 à 19:43:45    

j'ai fait des petites recherches, et apparement une nightly build de firebug , que j'ai installé , permet de le faire. Mais je n'ai pas trouvé comment...


---------------
Topic vente DDR / réseaux
Reply

Marsh Posté le 27-10-2007 à 19:50:58    

J'ai rien dis, j ai trouvé.


---------------
Topic vente DDR / réseaux
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed