Wie kann ich mit JavaScript ein Zeichen in seinen ASCII-Code umwandeln?
Zum Beispiel:
erhalten 10 von " \n ".
Wie kann ich mit JavaScript ein Zeichen in seinen ASCII-Code umwandeln?
Zum Beispiel:
erhalten 10 von " \n ".
Zur Unterstützung aller UTF-16 (auch nicht-BMP/ergänzende Zeichen ) von ES6 die string.codePointAt() Methode verfügbar ist;
Diese Methode ist eine verbesserte Version von charCodeAt, die nur Unicode-Codepunkte < 65536 unterstützt ( 2 16 - ein einzelnes 16bit ) .
Ergänzend zu den Kommentaren von Álvaro González und andere, charCodeAt o codePointAt sind sehr gut geeignet, wenn Sie nur mit den 128 ursprünglichen ASCII-Zeichen arbeiten (Codes 0 bis 127). Außerhalb dieses Bereichs, der Code ist abhängig vom Zeichensatz und Sie brauchen eine Zeichensatzkonvertierung vor der Berechnung, wenn das Ergebnis sinnvoll sein soll.
Nehmen wir das Euro-Zeichen als Beispiel: '€'.codePointAt(0)
gibt zurück. 8364
was weit außerhalb des Bereichs 0-127 liegt und sich auf den UTF-16 (oder UTF-8 ) Zeichensatz.
Ich habe ein Visual Basic-Programm portiert und festgestellt, dass es die Asc
Funktion, um den Zeichencode zu erhalten. Von ihrem Standpunkt aus würde sie natürlich den Zeichencode in der Fenster-1252 Zeichensatz. Um sicher zu sein, dass ich dieselbe Zahl erhalte, muss ich den Zeichensatz konvertieren und dann den Code berechnen.
Ziemlich einfach z.B. in Python: ord('€'.encode('Windows-1252'))
.
Um dasselbe in Javascript zu erreichen, musste ich jedoch auf Puffer und eine Konvertierungsbibliothek :
iconv = require('iconv-lite');
buf = iconv.encode("€", 'win1252');
buf.forEach(console.log);
charCodeAt(0);
Der obige Code funktioniert in den meisten Fällen, allerdings gibt es einen Haken bei der Arbeit mit Wörtern, um eine Rangfolge auf der Grundlage des obigen Codes zu finden. Zum Beispiel würde aa eine Rangfolge von 97+97 = 194 ergeben (tatsächlich wäre 1+1 = 2), während w 119 ergeben würde (tatsächlich wäre es 23), was aa > w macht. Um dies zu beheben, subtrahieren Sie 96 vom obigen Ergebnis, um die Positionierung bei 1 zu beginnen.
charCodeAt(0) - 96;
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.