2017-09-07 1 views
1

Lasst uns sagen, ich habe eine Zeichenfolge mit Windows-1252 Hex-Wert für ein Zeichen, ich möchte, dass die entsprechenden Unicode-Zeichen machen:Konvertieren von Windows-1252 Hex-Wert auf Unicode in JavaScript

const asciiHex = '85' //represents hellip 
parseInt(asciiHex, 16) //I get 133 as expected 

kann ich nicht tun Sie String.fromCharCode jetzt als Unicode-Codes statt ASCII (in Unicode hellip ist 8230 (dezimal)). Kennt jemand eine einfache Konvertierung?

btw mache ich das in Knoten 6

+1

133 nicht ein ASCII-Wert ist. –

+0

in der Tat, vergessen zu sagen, es ist der erweiterte Code in ISO 8859-1 –

+1

Nun, nein, es ist Windows-1252, wie die Antwort unten erwähnt. Bitte lesen Sie https://en.wikipedia.org/wiki/Western_Latin_character_sets_(computing) –

Antwort

3

Du hast nicht die Eingabecodierung erwähnen: in der Zeichencodierung \x85 zur horizontalen Ellipsen abgebildet wird? Stellt sich heraus, dass Windows-1252, die Node.js nicht "out of the box" spricht.

Ein Modul, das es kodieren/decodieren kann, ist windows-1252.

Um Ihren Hex-Code an einen UTF-8 kodierten String zu konvertieren:

const windows1252 = require('windows-1252'); 

let asciiHex = '85'; 
let utf8text = windows1252.decode(Buffer.from(asciiHex, 'hex').toString('binary')); 

console.log(utf8text); // outputs: … 
+0

Danke das macht Sinn, habe ich vergessen zu erwähnen, dass es ISO 8859-1 –

+0

@DanielGruszczyk ich glaube nicht, für ISO-8859- 1 '\ x85' ist nicht definiert (auch bestätigt [hier] (https://en.wikipedia.org/wiki/Ellipsis#Computer_representations): _" Beachten Sie, dass die ISO/IEC 8859-Kodierungsserie keinen Code-Punkt für Auslassungspunkte bietet " _). – robertklep

+0

tbh Ich bin nicht gut mit all den Encoding-Sachen usw. Ich nahm meine Informationen von http://www.asci-i-code.com/. Wie auch immer, Ihre Lösung funktioniert perfekt, danke :) –