Javascript UTF8汉字解码
我正在使用node.js和express构建一个API,将汉字转换为拼音,但我遇到了一些utf8解码/编码问题。我对该API的PHP Curl请求编码如下: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)); } 在大多数情况下,它工作得非常好。然而,我注意到一些奇怪的行为。以下是两个输入,转义后
你好 (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