Need to convert the unicode of the SOH value '\u0001' to Ascii. Why is this not working?
var soh = String.fromCharCode(01);
It returns '\u0001'
Or when I try
var soh = '\u0001'
It returns a smiley face.
How can I get the unicode to bee the proper SOH value(a blank unprintable character)
Need to convert the unicode of the SOH value '\u0001' to Ascii. Why is this not working?
var soh = String.fromCharCode(01);
It returns '\u0001'
Or when I try
var soh = '\u0001'
It returns a smiley face.
How can I get the unicode to bee the proper SOH value(a blank unprintable character)
2 Answers
Reset to default 5JS has no ASCII strings, they're intrinsically UTF-16.
In a browser you're out of luck. If you're coding for node.js you're lucky!
You can use a buffer to transcode strings into octets and then manipulate the binary data at will. But you won't get necessarily a valid string back out of the buffer once you've messed with it.
Either way you'll have to read more about it here:
https://mathiasbynens.be/notes/javascript-encoding
or here:
https://nodejs/api/buffer.html
EDIT: in the ment you say you use node.js, so this is an excerpt from the second link above.
const buf5 = Buffer.from('test');
// Creates a Buffer containing ASCII bytes [74, 65, 73, 74].
To create the SOH character embedded in a mon ASCII string use the mon escape sequence\x01
like so:
const bufferWithSOH = Buffer.from("string with \x01 SOH", "ascii");
This should do it. You can then send the bufferWithSOH
content to an output stream such as a network, console or file stream.
Node.js documentation will guide you on how to use strings in a Buffer
pretty well, just look up the second link above.
To ascii would be would be an array of bytes: 0x00 0x01
You would need to extract the unicode code point after the \u
and call parseInt
, then extract the bytes from the Number. JavaScript might not be the best language for this.