为什么 utf8 编码在 http get 请求的情况下不起作用?

Why the utf8 encode is not working in case of http get request?

提问人:Denes 提问时间:11/20/2022 更新时间:11/20/2022 访问量:33

问:

我想对文件进行字符编码,但它不起作用。由 API GET 请求生成的文件本身。它是一种匈牙利语。我尝试了 utf8 和其他方法,但没有任何效果。我还尝试用编码读取文件,但没有任何成功。我错过了什么?

function apiCall() {                     

    const postData = `DateFrom=2022-11-15&DateTill=2022-11-15`;

    const options = {                                              
        protocol: 'https:',
        host: 'link.com',
        path: `/v1.1/Order/Find?${postData}`,
        method: 'GET',
        headers: {
            "Api-Key": apiKey,
        }
    };

    const req = https.request(options, (res) => {
        console.log('statusCode:', res.statusCode);

        res.on('data', (d) => {                                       
            answer += d;
            fs.writeFileSync(__dirname + "/logs/result.xml", answer, 'utf8');
        });

        res.on("error", (err) => {                                    
            reject(err);
        });

    });

    req.write(postData);                                          

    req.on('error', (e) => {                                      
        console.error(`Hiba: + ${e}`);
    });

    req.end();
};

该文件包含几个奇怪的字符。 例如: fut\u00e1rszolg\u00e1lata => 这应该是:futárszolgálat。

谢谢你在前进。

节点 .js XML UTF-8 编码

评论

0赞 Marc 11/20/2022
“á”编码为“\u00e1”。如果在浏览器中显示查看文件,是否正确显示?
0赞 tripleee 11/20/2022
这是标准的JSON编码,没什么奇怪的。这里没有 UTF-8,但如果你解码它,当你再次序列化它以写入文件时,这可能是你最终得到的。
0赞 Denes 11/20/2022
@Marc,奇怪但浏览器打不开。我有点困惑。知道如何正确保存它吗?
0赞 Marc 11/20/2022
@Denes 您可以尝试使用节点.js内置字符串解码器。

答: 暂无答案