2010-01-15 11 views

Respuesta

48
'H'.charCodeAt(0) 
+0

Hola, gracias por la solución. ¿Funcionará solo con palabras en inglés? cuando traté de encontrar el código de char de una palabra tamil, no funcionaba correctamente. Si uso String.fromCharCode (2974); devuelve el carácter 'ஞ', de la misma manera, si uso 'ஞ'. charCodeAt (0) obtengo 38, y eso es para '&', ¿por qué es así? – shanish

+0

@shanish: ¿Qué obtienes si escribes 'String.fromCharCode (2974) .charCodeAt (0)'? (Funciona para mí.) Tal vez su editor y/o archivo fuente no sean compatibles con Unicode. –

9

Uso charCodeAt:

var str = 'H'; 
var charcode = str.charCodeAt(0); 
5

o mejor aún:

function CHR(ord) 
{ 
return String.fromCharCode(ord); 
} 

function ORD(chr) 
{ 
return chr.charCodeAt(0); 
} 

a continuación, utilizando

var mySTR = ORD(72); 

si desea utilizar más de una vez, y/o mucho.

5

@ La respuesta de Silvio solo es cierta para los puntos de código hasta 0xFFFF (que al final es el máximo que puede generar String.fromCharCode). No siempre se puede asumir la longitud de un personaje es uno:

''.length 
-> 2 

Aquí hay algo que funciona:

var utf16ToDig = function(s) { 
    var length = s.length; 
    var index = -1; 
    var result = ""; 
    var hex; 
    while (++index < length) { 
     hex = s.charCodeAt(index).toString(16).toUpperCase(); 
     result += ('0000' + hex).slice(-4); 
    } 
    return parseInt(result, 16); 
} 

Su uso:

utf16ToDig('').toString(16) 
-> "d800df30" 

(Inspiración de https://mothereff.in/utf-8)