Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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 UTF8汉字解码_Javascript_Node.js_Express_Character Encoding - Fatal编程技术网

Javascript UTF8汉字解码

Javascript UTF8汉字解码,javascript,node.js,express,character-encoding,Javascript,Node.js,Express,Character Encoding,我正在使用node.js和express构建一个API,将汉字转换为拼音,但我遇到了一些utf8解码/编码问题。我对该API的PHP Curl请求编码如下: 你好 (nǐ​hǎo) => ä½ å¥½ …所以我必须在我的节点应用程序中解码它们。我正在使用以下功能: function decode_utf8(s) { return decodeURIComponent(escape(s)); } 在大多数情况下,它工作得非常好。然而,我注意到一些奇怪的行为。以下是两个输入,转义后

我正在使用node.js和express构建一个API,将汉字转换为拼音,但我遇到了一些utf8解码/编码问题。我对该API的PHP Curl请求编码如下:

你好 (nǐ​hǎo) => ä½ å¥½
…所以我必须在我的节点应用程序中解码它们。我正在使用以下功能:

function decode_utf8(s) {
    return decodeURIComponent(escape(s));
}
在大多数情况下,它工作得非常好。然而,我注意到一些奇怪的行为。以下是两个输入,转义后的值和解码后的值:


第一个nǐ​hǎo可以工作,但只使用两个字符nǐ中的第一个​ 它给了我一个错误?这怎么可能?decodeURIComponent函数的输入与nǐ的输入完全相同​-但它只在与另一个角色组合时起作用。这里怎么了?

您试图解码的字符串没有解析为有效的utf8。您的PHP Curl请求有问题,因为它不是编码你 nǐ​ 正确地编码的百分比值应为你 => %E4%BD%A0

你好 (nǐ​hǎo): ä½ å¥½ => %E4%BD%A0%E5%A5%BD => 你好
你 (nǐ​): ä½ => %E4%BD => URIError: URI malformed