首页 > 解决方案 > 在nodejs中使用区域语言从客户端获取数据

问题描述

客户端数据示例如下

{name:'ABC',age:24,language:'ಕನ್ನಡ'}

我需要将语言值发送到另一个服务,但在节点控制台中不能像上面那样打印而不是 ಕನ್ನಡ 它像 {name:'ABC',age:24,language:'����ͷ�'} 我的快速设置一样打印

    var express = require('express');
    var bodyParser = require('body-parser');
    var app = express();

    app.use(bodyParser.json({
            limit: '2mb'
        }));
        app.use(bodyParser.urlencoded({
            limit: '900kb',
            extended: true
        }));
    app.use((req, res, next) => {
    req.header("Content-Type",  "application/json;charset=UTF-8");
    next();
});

这是印度卡纳达语。我尝试使用语言环境模块,但没有运气。如何设置接受语言请帮我解决

标签: node.jsexpress

解决方案


我不确定这是否会对您有所帮助,但我只是试了一下:

var express = require('express');
var bodyParser = require('body-parser');
var app = express();

app.use(bodyParser.json({
    limit: '2mb'
}));
app.use(bodyParser.urlencoded({
    limit: '900kb',
    extended: true
}));
app.use((req, res, next) => {
    console.log(decodeURIComponent(req.body.data));
    req.header("Content-Type",  "application/json;charset=UTF-8");
    next();
});

app.listen(3000);

在发布之前:

encodeURIComponent('ಕನ್ನಡ'); // returns %E0%B2%95%E0%B2%A8%E0%B3%8D%E0%B2%A8%E0%B2%A1

然后尝试:

curl -d "data=%E0%B2%95%E0%B2%A8%E0%B3%8D%E0%B2%A8%E0%B2%A1" http://localhost:3000/

它将在控制台上打印:

ಕನ್ನಡ</p>

PS正如我提到的,这只是一种可能的方式,因此可能还有其他方式。


推荐阅读