node.js request post json数组中文乱码问题

var request = require('request')
var url = '' 
request({
    url:url,
    method:'POST',
    json:true,
    headers:{
        'content-type':'application/json',
    },
    body:JSON.stringify({
        body:
          {
            content:"商务",
            visitor_name:"张三",      
            visitor_company_name:"淘宝",
            check_in_plcae:"深圳",
            visitor_type:"01",
            host:"03",
            visitor_num:"1",
            photo:""
          }
    }),function (error,response,body) {
        if(!error && response.statusCode == 200){
            console.log(body);
        }
        
    }
})

麻烦各位大佬帮我看看为什么这样发送出去,对方收到的是中文乱码

"{\"body\":{\"content\":\"???\",\"visitor_name\":\"é????\",\"visitor_company_name\":\"????\",\"check_in_plcae\":\"??±??\",\"visitor_type\":\"01\",\"host\":\"???°01\",\"visitor_num\":\"1\",\"photo\":\"\"}}"

如何解决node.js request这个模块发送post出现中文乱码的问题

阅读 3.9k
1 个回答
const http = require('http');
var querystring = require('querystring');
const postData = JSON.stringify(
    {
        "body":
          {
            "content":"拜访",
            "visitor_name":"李四",
            "visitor_company_name":"",
            "check_in_plcae":"南京",
            "visitor_type":"02",
            "host":"01",
            "visitor_num":"11",
            "photo":""
          }
      }
  );
  console.log(postData);
  
  const options = {
    hostname: '',
    port: 8089,
    path: '',
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Content-Length': Buffer.byteLength(postData)
    }
  };
  
  const req = http.request(options, (res) => {
    console.log(`状态码: ${res.statusCode}`);
    console.log(`响应头: ${JSON.stringify(res.headers)}`);
    res.setEncoding('utf8');
    res.on('data', (chunk) => {
      console.log(`响应主体: ${chunk}`);
    });
    res.on('end', () => {
      console.log('响应中已无数据。');
    });
  });
  
  req.on('error', (e) => {
    console.error(`请求遇到问题: ${e.message}`);
  });
  
  // 写入数据到请求主体
  req.write(postData);
  req.end();

最后我通过这种方式发送了过去

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题