gpt4 book ai didi

javascript - Node.js/Express - 如何设置响应字符编码?

转载 作者:IT老高 更新时间:2023-10-28 22:10:24 29 4
gpt4 key购买 nike

说我明白了:

app.get('/json', function(req, res) {
res.set({
'content-type': 'application/json'
}).send('{"status": "0"}');
});

我正在尝试以 UTF-8 格式发送响应,但没有成功:

app.get('/json', function(req, res) {
// From Node.js Official Doc
// http://nodejs.org/api/http.html#http_http_request_options_callback
res.setEncoding('utf8');

res.set({
'content-type': 'application/json'
}).send('{"status": "0"}');
});

在 Express 中设置字符编码的正确方法是什么?

最佳答案

如果您发现 Express 尚未设置它,您可能希望在内容类型字符串的末尾显式添加一个字符集:

 res.set({ 'content-type': 'application/json; charset=utf-8' });

字符集总是自动设置,需要设置才能在任何地方正常工作(即所有浏览器和所有 ajax 库),或者您可能会遇到编码错误。

特别是在 Express 4.x 中,我发现根据您尝试返回的对象,它通常会自动返回 content-type: application/json; charset=utf-8 调用 res.json(someObject) 时,但并非总是如此。

当在某些对象上调用 res.json() 时,它可以返回 content-type: application/json(即没有字符集编码!)。我实际上并不确定是什么触发了这个,除了它与返回的特定对象有关。

我只注意到它是因为自动化测试明确检查了 header 并发现它缺少某些响应的字符集声明(即使内容类型仍然是 application/json)。

关于javascript - Node.js/Express - 如何设置响应字符编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872789/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com