Javascript unicode to ASCII

核能气质少年 提交于 2021-01-27 17:26:59

问题


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 become the proper SOH value(a blank unprintable character)


回答1:


JS 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.org/api/buffer.html


EDIT: in the comment 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 common ASCII string use the common 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.




回答2:


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.



来源:https://stackoverflow.com/questions/38577478/javascript-unicode-to-ascii

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!