2016-05-13 2 views
0

J'ai un mot cyrillique dans mon fichier js dont le jeu de caractères est UTF-8 sans nomenclature. Comment puis-je obtenir l'index hexadécimal de la table unicode de mon premier personnage? Le mot "Абв" et le résultat doivent renvoyer le code hexadécimal "0x0410".Conversion d'unicode en hexadécimal

J'ai essayé ce code, mais il retourne un résultat erroné:

var code = "А".charCodeAt(0); 
var codeHex = code.toString(16).toUpperCase(); 
console.log(code, codeHex); 

Répondre

0

Notez que dans votre console.log(code, codeHex); vous avez pas d'espace entre les deux valeurs code et codeHex, de sorte que vous aurez la chance de voir une valeur apparemment grande (1040410).

Donc séparer comme ceci:

console.log(code, ' ', codeHex); 

et si vous voulez une belle mise en forme hexagonale, faites ceci:

console.log(code, ' ', '0x' + ('0000' + codeHex).substr(-4)); 

Snippet:

var code = "А".charCodeAt(0); 
 
var codeHex = code.toString(16).toUpperCase(); 
 
document.write(code, ' ', '0x' + ('0000' + codeHex).substr(-4));

+0

Eh bien, quand je tape cet extrait dans la console c'est un travail parfait. Mais quand je l'utilise depuis mon fichier, il revient toujours: "1056 0x0420". – Macedonian

+0

J'ai changé le jeu de caractères de mon fichier en ANSI et cela fonctionne. Mais pourquoi cela ne fonctionne pas avec UTF-8? – Macedonian

+0

Définissez le jeu de caractères de votre fichier HTML: ajoutez '' et en même temps enregistrez-le comme encodage UTF-8 (vérifiez que le caractère est toujours le même après les caractères peuvent ne pas survivre à l'interrupteur). – trincot