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

Axios返回乱码值问题求助(WSL2 Ubuntu环境)

Axios GET请求返回乱码的解决办法

问题根源

你遇到的乱码问题,主要是Axios 1.2.0和Node.js v19+的响应编码处理逻辑不兼容导致的——Axios默认的自动编码检测在这个环境下失效,把本该转成UTF-8的二进制数据直接输出了,而fetch的编码处理逻辑不受这个影响。

可行解决方案

  • 强制指定响应编码
    在请求配置里显式设置responseEncoding: 'utf8',跳过Axios的自动检测:

    const axios = require("axios");
    
    axios.get('https://jsonplaceholder.typicode.com/users', {
      responseEncoding: 'utf8'
    })
    .then(response => console.log(response.data))
    
  • 手动解析响应Buffer
    如果上面的方法没用,就把响应类型设为arraybuffer,拿到Buffer后手动转成UTF-8字符串:

    const axios = require("axios");
    
    axios.get('https://jsonplaceholder.typicode.com/users', {
      responseType: 'arraybuffer'
    })
    .then(response => {
      const data = Buffer.from(response.data).toString('utf8');
      console.log(data);
    })
    
  • 升级Axios版本
    Axios 1.2.0存在和Node.js 19兼容的bug,直接升级到最新稳定版(比如1.6.x及以上)就能修复这类问题:

    npm install axios@latest
    
  • 排查WSL2代理影响
    要是你在WSL2里用了代理,可能是代理篡改了响应的编码。先临时关闭代理测试:

    unset HTTP_PROXY
    unset HTTPS_PROXY
    

    测试正常的话,再调整代理设置,确保它不会修改响应的Content-Encoding头。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:45:35