You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Express、Node、Prisma搭建服务器时Axios请求乱码求助

解决Axios请求第三方API出现菱形问号乱码的方案

核心原因

第三方API返回的响应编码并非UTF-8(比如GBK、GB2312等),或是Axios自动解析响应时的编码逻辑与实际编码不匹配。另外你之前配置的charset: "utf8"并非Axios合法配置项,不会生效。

具体解决方案

1. 确认第三方API的实际响应编码

用curl命令查看响应头的Content-Type字段,明确返回的编码格式:

curl -I https://sandbox.xola.com/api/categories

查看输出中的Content-Type字段,比如如果包含charset=gbk,就说明响应是GBK编码。

2. 手动处理响应编码(推荐)

通过指定responseType: 'arraybuffer'获取原始二进制数据,再用iconv-lite库按实际编码解码:

首先安装依赖:

npm install iconv-lite

修改代码:

import axios from "axios";
import iconv from "iconv-lite";

export function xola() {
  const options = {
    method: "GET",
    url: "https://sandbox.xola.com/api/categories",
    headers: {
      accept: "application/json",
      "X-API-VERSION": "2017-06-10",
    },
    responseType: 'arraybuffer', // 获取原始二进制数据,避免Axios自动转码
    responseEncoding: 'binary'
  };

  axios
    .request(options)
    .then(function (response) {
      // 替换为你查到的实际编码,比如'gbk'、'gb2312'等
      const decodedStr = iconv.decode(response.data, 'gbk');
      const data = JSON.parse(decodedStr);
      console.log(data);
    })
    .catch(function (error) {
      console.error(error);
    });
}

3. 升级Axios到最新版本

部分旧版Axios对responseEncoding的处理存在bug,执行以下命令升级:

npm update axios

内容的提问来源于stack exchange,提问作者nezie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 12:45:41