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

Next.js中getStaticProps使用Axios返回特殊Unicode数据异常问题

Next.js getStaticProps中Axios获取数据出现特殊Unicode块的解决方案
  • 手动指定响应类型与编码
    Axios默认的响应解析逻辑可能和接口返回的编码不匹配,可强制设置响应类型为文本并指定utf-8编码,之后手动解析JSON:

    export async function getStaticProps() {
      const response = await axios.get('目标接口地址', {
        responseType: 'text',
        responseEncoding: 'utf-8'
      });
      const data = JSON.parse(response.data);
      return { props: { data } };
    }
    
  • 禁用Axios自动转换响应数据
    Axios默认会自动转换响应内容,这个过程可能导致编码异常,关闭自动转换后手动处理数据:

    export async function getStaticProps() {
      const response = await axios.get('目标接口地址', {
        transformResponse: [(data) => data] // 跳过自动转换
      });
      const data = JSON.parse(response.data);
      return { props: { data } };
    }
    
  • 强制指定请求头的编码
    如果接口返回的Content-Type未明确charset=utf-8,Axios可能用错误编码解析,可在请求头中强制声明接受utf-8编码:

    export async function getStaticProps() {
      const response = await axios.get('目标接口地址', {
        headers: {
          'Accept-Charset': 'utf-8'
        }
      });
      return { props: { data: response.data } };
    }
    
  • 对齐fetch与Axios的请求头
    接口可能根据请求头返回不同编码内容,将fetch的请求头完全复制到Axios中,确保请求参数一致:

    export async function getStaticProps() {
      const response = await axios.get('目标接口地址', {
        headers: {
          'Accept': '*/*',
          // 补充fetch请求中包含的其他请求头
        }
      });
      return { props: { data: response.data } };
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:50:44