1

Ich bin mit einem Barcode-Scanner einen Barcode auf meiner Website (die Website in OpenUI5 wird) zu lesen.Wie bekomme ich den Unicode-Code-Punkt für ein Zeichen in Javascript?

Der Scanner funktioniert wie eine Tastatur, die Typen der Zeichen liest. Am Ende und am Beginn der Eingabe verwendet es ein Sonderzeichen. Diese Zeichen sind für jeden Scannertyp unterschiedlich.

Einige mögliche Zeichen sind:

  • -
  • -

In meinem Code ich if (oModelScanner.oData.scanning && oEvent.key == "\u2584") überprüfen verwenden, wenn die Eingabe von dem Scanner ist ▄ .

Gibt es eine Möglichkeit den Code aus diesem Charakter in dem \ uhhhh Stil zu bekommen? (wobei der HHHH der hexadezimale Code für das Zeichen ist)

Ich versuchte charCodeAt, aber das gibt den Dezimalcode zurück.

Mit den codePointAt examples sie den Code, den ich in einen Dezimal-Code müssen machen, so brauche ich ein gerade Gegenteil.

Antwort

2

Javascript-Strings haben eine Methode codePointAt, die Sie den ganzzahligen Wert eines bestimmten Symbol in der Basis 10, Sie Basis 16 (hexadezimal) gibt müssen dann konvertieren Sie Ihre ganze Zahl, wenn Sie die ganze Zahl in eine vier formatieren möchten hexadezimale Ziffernfolge (wie in der Antwort von Nikolay Spasov).

var hex = "▄".codePointAt(0).toString(16); 
var result = "\\u" + "0000".substring(0, 4 - hex.length) + hex; 

Allerdings wäre es wahrscheinlich einfacher für Sie, direkt zu überprüfen, ob Sie Schlüsselcodepunkt integer

oEvent.key.codePointAt(0) === '▄'.codePointAt(0); 

Hinweis des erwarteten Codepunkt überein, dass „Symbol Gleichheit“ kann tatsächlich schwieriger sein: einige Symbole definiert durch Ersatzpaare (Sie können es als die Kombination von zwei Hälften sehen, die als vier hexadezimale Ziffernfolge definiert sind).

Aus diesem Grunde würde ich empfehlen, eine Fachbibliothek zu verwenden.

finden Sie weitere Details in der sehr

1
var hex = "▄".charCodeAt(0).toString(16); 
var result = "\\u" + "0000".substring(0, 4 - hex.length) + hex; 
Verwandte Themen