我正在使用express js 4.13.3和nodejs 12
我收到标题name: "John D�m"
的请求我甚至不知道它的编码,所以我不知道如何转换它。
结果应为name: "John Döm"
这是路由
var express = require('express')
var app = express();
app.configure(function () {
app.use(express.logger('dev'));
app.use(express.bodyParser());
});
app.get('/drivers', function(req,res){
res.send(req.headers["name"])
});
app.listen(3000);
console.log('Up: http://127.0.0.1:3000/');
我尝试了res.header("Content-Type", "application/json; charset=utf-8");
我可以设置express来编码吗?用中间件还是什么? 先谢谢你。
答案 0 :(得分:0)
出于某种原因,这对我有用:
res.end(JSON.stringify(req.headers.name, null, 2), 'utf-8');
但不是这样:
res.send(req.headers.name)
所以我最终得到了:
var string = req.headers.name;
return res.send('<!DOCTYPE html><html> <head><meta charset="utf-8"></head><body>' +
string +
'</body></html>');
答案 1 :(得分:0)
我试图解决传入请求标头编码错误的问题。他们期望以 iso-8859-1 编码,但我的 OIDC 提供商使用 UTF-8。没有办法改变。最后用了这个:
name = Buffer.from(req.headers['oidc_claim_name'], 'latin1').toString('utf-8');