Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript unicode到ASCII_Javascript_Node.js_Ascii - Fatal编程技术网

Javascript unicode到ASCII

Javascript unicode到ASCII,javascript,node.js,ascii,Javascript,Node.js,Ascii,需要将SOH值“\u0001”的unicode转换为Ascii。为什么这不起作用 var-soh=String.fromCharCode(01) 它返回“\u0001” 或者当我尝试的时候 var soh='\u0001' 它返回一张笑脸。 如何使unicode成为正确的SOH值(一个空白的不可打印字符)到ascii将是一个字节数组:0x00 0x01您需要在\u之后提取unicode码点,并调用parseInt,然后从数字中提取字节。JavaScript可能不是最好的语言。JS没有ASCII字

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

var-soh=String.fromCharCode(01)
它返回“\u0001”
或者当我尝试的时候

var soh='\u0001'
它返回一张笑脸。

如何使unicode成为正确的SOH值(一个空白的不可打印字符)

到ascii将是一个字节数组:
0x00 0x01
您需要在
\u
之后提取unicode码点,并调用
parseInt
,然后从数字中提取字节。JavaScript可能不是最好的语言。

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

在浏览器中,你运气不好。如果您正在为node.js编码,那么您就很幸运了

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

无论哪种方式,您都必须在此处阅读更多关于它的内容:

或在此:


编辑:在你说你使用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文档将指导您如何很好地使用
缓冲区中的字符串,只需查看上面的第二个链接。

FWIW您也可以使用在浏览器中(以及节点)在编码之间转换。很高兴知道!谢谢。我是在node中做的,但我从来没有用ASCII字符做过任何事情。要正确显示SOH ascii字符似乎是不可能的。我已经更新了答案。顺便问一下,你说的“秀”是什么意思?显示在哪里?在HTML页面中?问题是,当我将消息发送到另一台服务器时,他们会看到“\u0001”,我只是希望它是正确的,这是令人沮丧的一周……谢谢,我一直在使用Javascript,非常希望它能正常工作。有这样的例子吗?我从来没有真正处理过ASCII字符,任何帮助都是非常感谢的。你想做什么?我有一个应用程序(在Windows上的NoDEJS)上连接到C++服务器,问题是当我把消息发送到服务器时,它不是正确的“SOH”ASCII字符,它显示笑脸或Unicode(‘0001’)。作为分隔符是不可接受的。我需要它是空白的空间或它应该是什么字符,并且C++应用程序可读,谢谢!
const buf5 = Buffer.from('test');
// Creates a Buffer containing ASCII bytes [74, 65, 73, 74].