需要将SOH值'\ u0001'的unicode转换为Ascii。为什么这不起作用?var soh = String.fromCharCode(01);
返回'\ u0001'
或者当我尝试var soh = '\u0001'
它返回一张笑脸。
我怎样才能使unicode变成正确的SOH值(一个空白的不可打印字符)
最佳答案
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].
要创建嵌入在通用ASCII字符串中的SOH字符,请使用通用转义序列
\x01
,如下所示:const bufferWithSOH = Buffer.from("string with \x01 SOH", "ascii");
这应该做。然后,您可以将
bufferWithSOH
内容发送到输出流,例如网络,控制台或文件流。Node.js文档将指导您如何很好地使用
Buffer
中的字符串,只需查找上面的第二个链接即可。关于javascript - Javascript Unicode转换为ASCII,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38577478/