2010-01-15 5 views

Antwort

48
'H'.charCodeAt(0) 
+0

Hallo, danke für die Lösung. Wird es nur mit englischen Wörtern funktionieren? Als ich versuchte, den Zeichencode für ein Tamilwort zu finden, funktionierte es nicht richtig. Wenn ich String.fromCharCode (2974) verwende; es gibt das Zeichen 'ஞ' auf die gleiche Weise zurück, wenn ich 'ஞ' benutze. charCodeAt (0) bekomme 38, und das ist für '&', warum ist es so? – shanish

+0

@shanish: Was bekommen Sie, wenn Sie 'String.fromCharCode (2974) .charCodeAt (0)' schreiben? (Es funktioniert für mich.) Vielleicht sind Ihr Editor und/oder Ihre Quelldatei nicht Unicode-freundlich. –

9

Verwendung charCodeAt:

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

Oder noch besser:

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

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

dann

var mySTR = ORD(72); 

verwenden, wenn Sie sie mehr als einmal verwendet werden soll, und/oder viel.

5

@ Die Antwort von Silvio gilt nur für Codepunkte bis zu 0xFFFF (was am Ende das Maximum ist, das String.fromCharCode ausgeben kann).

''.length 
-> 2 

etwas hier, das funktioniert:

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); 
} 

Mit ihm: Sie können die Länge eines Zeichens ist man nicht immer davon ausgehen,

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

(Inspiration von https://mothereff.in/utf-8)