JavaScript unicode 转 ASCII

New*_*hie 3 javascript ascii node.js

需要将SOH值'\u0001'的unicode转换为Ascii。为什么这不起作用?

var soh = String.fromCharCode(01);
它返回 '\u0001'
或者当我尝试时

var soh = '\u0001' 它返回一个笑脸。
如何使 unicode 成为正确的 SOH 值(空白的不可打印字符)

pid*_*pid 5

JS 没有 ASCII 字符串,它们本质上是 UTF-16。

在浏览器中你就不走运了。如果您正在为 Node.js 编写代码,那么您很幸运!

您可以使用缓冲区将字符串转码为八位字节,然后随意操作二进制数据。但是一旦你弄乱了它,你就不一定能从缓冲区中得到一个有效的字符串。

无论哪种方式,您都必须在这里阅读更多相关信息:

https://mathiasbynens.be/notes/javascript-encoding

或在这里:

https://nodejs.org/api/buffer.html


编辑:在评论中你说你使用node.js,所以这是上面第二个链接的摘录。

const buf5 = Buffer.from('test');
// Creates a Buffer containing ASCII bytes [74, 65, 73, 74].
Run Code Online (Sandbox Code Playgroud)

要创建嵌入公共 ASCII 字符串中的 SOH 字符,请使用公共转义序列,\x01如下所示:

const bufferWithSOH = Buffer.from("string with \x01 SOH", "ascii");
Run Code Online (Sandbox Code Playgroud)

这应该可以做到。然后,您可以将bufferWithSOH内容发送到输出流,例如网络、控制台或文件流。

Node.js 文档将指导您如何Buffer很好地使用字符串,只需查找上面的第二个链接即可。