Dans un contexte HTML / Internet Explorer je tente de construire une
chaine binaire avec la méthode fromCharCode à l'instar d'un exemple de
code à ma disposition et écrit en VBScript.
Là tout va mal ! La chaine transmise est x7F x3F (= "?") x81
(Dans mon cas l'objet est un controle ActiveX qui accède au port série
du PC mais le phénomène est constaté aussi sans).
Bref, certaines valeurs (en particulier au dessus de 127 [0x7F] ) sont
erronées.
De prime abord ça fait penser à un pb de nombre signés/non signés, la
chose étrange est que la valeur 0x81 est correcte (0x82 et suivantes ne
le sont pas).
J'ai aussi regardé du côté Unicode (produit par fromCharCode) mais
j'avoue m'y perdre un peu.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
YD
Bonjour à tous,
Dans un contexte HTML / Internet Explorer je tente de construire une chaine binaire avec la méthode fromCharCode à l'instar d'un exemple de code à ma disposition et écrit en VBScript. [...]
Ce code fonctionne comme on s'y attend :
var i, a=""; for( i7;i<150;i++) a+=String.fromCharCode(i);
for (i=0;i<a.length;i++) document.write(a.charCodeAt(i)+" - ");
Le problème ne vient donc pas du js, mais du contrôle qui est peut être dérouté de recevoir des valeurs sur 16 bits ?
La méthode chr fonctionne avec des valeurs d'un octet. En javascript, d'après la norme, le codage des caractères se fait sur deux octets.
Peut-être une piste...
-- Y.D.
Bonjour à tous,
Dans un contexte HTML / Internet Explorer je tente de construire une
chaine binaire avec la méthode fromCharCode à l'instar d'un exemple de
code à ma disposition et écrit en VBScript. [...]
Ce code fonctionne comme on s'y attend :
var i, a="";
for( i7;i<150;i++)
a+=String.fromCharCode(i);
for (i=0;i<a.length;i++)
document.write(a.charCodeAt(i)+" - ");
Le problème ne vient donc pas du js, mais du contrôle qui est peut être
dérouté de recevoir des valeurs sur 16 bits ?
La méthode chr fonctionne avec des valeurs d'un octet. En javascript,
d'après la norme, le codage des caractères se fait sur deux octets.
Dans un contexte HTML / Internet Explorer je tente de construire une chaine binaire avec la méthode fromCharCode à l'instar d'un exemple de code à ma disposition et écrit en VBScript. [...]
Ce code fonctionne comme on s'y attend :
var i, a=""; for( i7;i<150;i++) a+=String.fromCharCode(i);
for (i=0;i<a.length;i++) document.write(a.charCodeAt(i)+" - ");
Le problème ne vient donc pas du js, mais du contrôle qui est peut être dérouté de recevoir des valeurs sur 16 bits ?
La méthode chr fonctionne avec des valeurs d'un octet. En javascript, d'après la norme, le codage des caractères se fait sur deux octets.
Peut-être une piste...
-- Y.D.
Forje
Bonjour à tous,
Dans un contexte HTML / Internet Explorer je tente de construire une chaine binaire avec la méthode fromCharCode à l'instar d'un exemple de code à ma disposition et écrit en VBScript. [...]
Ce code fonctionne comme on s'y attend :
var i, a=""; for( i7;i<150;i++) a+=String.fromCharCode(i);
for (i=0;i<a.length;i++) document.write(a.charCodeAt(i)+" - ");
Le problème ne vient donc pas du js, mais du contrôle qui est peut être dérouté de recevoir des valeurs sur 16 bits ?
La méthode chr fonctionne avec des valeurs d'un octet. En javascript, d'après la norme, le codage des caractères se fait sur deux octets.
Peut-être une piste...
Merci pour la piste, il y a certainement un pb dans le contrôle activex
(je n'ai pas accès au code). En attendant j'utilise un intermédiaire en VBScript qui fait le travail et qui est appelé par le JS. Tout va bien.
Ce qui me surprend dans l'histoire c'est que la valeur 0x80 ne "passe" pas en revanche 0x81 passe (le premier 128 est à remplacer par 129 dans mon post initial).
-- Forje
Bonjour à tous,
Dans un contexte HTML / Internet Explorer je tente de construire une
chaine binaire avec la méthode fromCharCode à l'instar d'un exemple de
code à ma disposition et écrit en VBScript. [...]
Ce code fonctionne comme on s'y attend :
var i, a="";
for( i7;i<150;i++)
a+=String.fromCharCode(i);
for (i=0;i<a.length;i++)
document.write(a.charCodeAt(i)+" - ");
Le problème ne vient donc pas du js, mais du contrôle qui est peut être
dérouté de recevoir des valeurs sur 16 bits ?
La méthode chr fonctionne avec des valeurs d'un octet. En javascript,
d'après la norme, le codage des caractères se fait sur deux octets.
Peut-être une piste...
Merci pour la piste, il y a certainement un pb dans le contrôle activex
(je n'ai pas accès au code). En attendant j'utilise un intermédiaire en
VBScript qui fait le travail et qui est appelé par le JS. Tout va bien.
Ce qui me surprend dans l'histoire c'est que la valeur 0x80 ne "passe"
pas en revanche 0x81 passe (le premier 128 est à remplacer par 129 dans
mon post initial).
Dans un contexte HTML / Internet Explorer je tente de construire une chaine binaire avec la méthode fromCharCode à l'instar d'un exemple de code à ma disposition et écrit en VBScript. [...]
Ce code fonctionne comme on s'y attend :
var i, a=""; for( i7;i<150;i++) a+=String.fromCharCode(i);
for (i=0;i<a.length;i++) document.write(a.charCodeAt(i)+" - ");
Le problème ne vient donc pas du js, mais du contrôle qui est peut être dérouté de recevoir des valeurs sur 16 bits ?
La méthode chr fonctionne avec des valeurs d'un octet. En javascript, d'après la norme, le codage des caractères se fait sur deux octets.
Peut-être une piste...
Merci pour la piste, il y a certainement un pb dans le contrôle activex
(je n'ai pas accès au code). En attendant j'utilise un intermédiaire en VBScript qui fait le travail et qui est appelé par le JS. Tout va bien.
Ce qui me surprend dans l'histoire c'est que la valeur 0x80 ne "passe" pas en revanche 0x81 passe (le premier 128 est à remplacer par 129 dans mon post initial).