Javascript Node.JS二进制数据URL解码到UTF-8问题

Javascript Node.JS二进制数据URL解码到UTF-8问题,javascript,node.js,utf-8,urldecode,utf8-decode,Javascript,Node.js,Utf 8,Urldecode,Utf8 Decode,当我从PHP客户端向Node.JS服务器发送带有UTF-8编码的二进制数据时,Node.JS在内部将该数据编码为URL编码(百分比编码)。我猜Node.JS不支持UTF-8,因为我已经用base64检查过了,它工作正常。我在谷歌上搜索了很多,发现每个人都面临着同样的问题。我手动检查了字符串,但得到了“URIError:URI格式不正确”错误 我还使用了弃用的函数unescape、escape、encodeURI和decodeURI Little background of my work: co

当我从PHP客户端向Node.JS服务器发送带有
UTF-8
编码的二进制数据时,Node.JS在内部将该数据编码为URL编码(百分比编码)。我猜Node.JS不支持UTF-8,因为我已经用base64检查过了,它工作正常。我在谷歌上搜索了很多,发现每个人都面临着同样的问题。我手动检查了字符串,但得到了
“URIError:URI格式不正确”
错误

我还使用了弃用的
函数unescape、escape、encodeURI和decodeURI

Little background of my work:
console.log(decodeURIComponent('%B1');
您可以从URL编码列表中搜索%B1表示“±”符号。但是我得到了上面提到的错误。此函数也不能解码其他许多特殊字符。我不知道Node.JS为什么不支持UTF-8这样的标准解码风格


伙计们,请帮帮我。

“Node.JS将此数据内部编码为URL Encode”否。在您描述的场景中,所有编码都在客户端上完成。“我猜Node.JS不支持UTF-8”-又错了。“我还使用了不推荐使用的函数unescape、escape、encodeURI和decodeURI”-为什么要这样做?底线是:您的问题不包含问题陈述(您试图实现什么?),也不包含足够有意义的代码来回答。(它所包含的只是模糊和毫无根据的假设。)请改进您的问题。因为UTF-8是一种文本编码,所以不可能以UTF-8的形式发送二进制数据。有几个编码器被设计来完成这样的任务(如UUEncode或base64)。不管怎样,首先你真的有二进制数据吗?utf-8编码的“±”是“%C2%B1”,如果你尝试它不会抛出…谢谢Holger。但我只得到了“±”的“%B1”。在php客户端,我使用utf8_编码函数对pdf、图像或文档数据进行编码。另外,我使用cURL将请求发布到服务器。如果所有编码都在客户端完成,那么为什么我要在node.js服务器端获取百分比编码数据?在获取参数中的数据时,我使用req.body.content记录数据(“content”是包含编码数据的参数)。以下是输出:“Node.JS在内部将此数据编码为URL Encode”否。在您描述的场景中,所有编码都在客户端上完成。“我猜Node.JS不支持UTF-8”-又错了。“我还使用了不推荐使用的函数unescape、escape、encodeURI和decodeURI”-为什么要这样做?底线是:您的问题不包含问题陈述(您试图实现什么?),也不包含足够有意义的代码来回答。(它所包含的只是模糊和毫无根据的假设。)请改进您的问题。因为UTF-8是一种文本编码,所以不可能以UTF-8的形式发送二进制数据。有几个编码器被设计来完成这样的任务(如UUEncode或base64)。不管怎样,首先你真的有二进制数据吗?utf-8编码的“±”是“%C2%B1”,如果你尝试它不会抛出…谢谢Holger。但我只得到了“±”的“%B1”。在php客户端,我使用utf8_编码函数对pdf、图像或文档数据进行编码。另外,我使用cURL将请求发布到服务器。如果所有编码都在客户端完成,那么为什么我要在node.js服务器端获取百分比编码数据?在获取参数中的数据时,我使用req.body.content记录数据(“content”是包含编码数据的参数)。以下是输出: