编码无法发送到 API Node JS 的奇怪字符

Encode strange characters which are unable to be sent to API Node JS

我叫 Juraj Çarnogurský。注意 Č 字符。 我想将我的名字从一台服务器发送到 API。但是我的姓氏被替换成了这个

"firstName":"Juraj","lastName":"
                                arnogurský"}}

这会破坏 JSON 格式。

顺便说一句,我正在使用 NodeJS。

如何将我的姓氏编码成适合网络传输的形式?

编辑

我这样做:

const jsonrpc = require('jsonrpc-lite');
const requestHttp = require('request');

还有这个:

let obj = jsonrpc.request(id, method, params);

requestHttp({
    uri: 'http://localhost:3001/api?data=' + JSON.stringify(obj),
    method: 'GET',
}, (error, response, body) => { ...

作为 id,我发送 '1' 作为方法,我发送 addCustomer,作为参数,我发送这个:

{
     customerId: senderID,
     facebookId: senderID,
     firstName: context.user.firstName,
     lastName: context.user.lastName,
}

其中 context.user.lastName 是 Çarnogurský

我这样做成功了:

requestHttp({
        uri: 'http://localhost:3001/api?',
        qs: {
            data: JSON.stringify(obj),
        },
        method: 'GET',
}, (error, response, body) => { ...

而不是这个:

requestHttp({
     uri: 'http://localhost:3001/api?data=' + JSON.stringify(obj),
     method: 'GET',
}, (error, response, body) => { ...

你已经意识到

uri: 'http://localhost:3001/api?data=' + JSON.stringify(obj)

必须替换为

uri: 'http://localhost:3001/api?',
qs: {
  data: JSON.stringify(obj),
}

这是因为所有 URL 都可以 only use ASCII:

URLs are written only with the graphic printable characters of the US-ASCII coded character set.

您的姓名包含 ASCII 集之外的字符。