使用具有以下设置的 express 和 body-parser:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json({limit: '100mb', extended: true,type: 'application/*+json;charset=utf-8'}))
app.use(bodyParser.urlencoded({limit: '100mb', extended: true}));
app.use(bodyParser.text({defaultCharset: 'utf-8'}));
app.use(express.json());
使用 npm start 运行 nodejs 服务器时,json 正文中的特殊字符按预期进行 utf-8 编码。一旦托管在 IIS 中,字符编码就会失败。唯一的区别是托管环境。使用“utf-8”设置为托管 nodejs 服务器应用程序的 IIS 站点正确设置了 .NET 全球化选项,没有任何区别。仔细检查 web.config。什么可能会弄乱传入的请求数据?
json 正文请求输出 - 当 nodejs 托管在 IIS 中时
json body 请求输出 - 当服务器直接使用 npm start 运行时:
关于可能发生的事情的提示: https ://www.i18nqa.com/debug/bug-utf-8-latin1.html
有谁知道在哪里看?