对xml使用nestjs/axios GET请求集编码

erhoui1w  于 2023-03-18  发布在  iOS
关注(0)|答案(1)|浏览(207)

我正在尝试通过axios检索XML(对于nestjs)。不幸的是,编码似乎无法正确工作,因为特殊字符(ü,ö,ä,etc.)都没有被正确地传递。我如何在GET请求的头中正确地设置编码,以便它工作?当我直接在浏览器中打开URL时,编码工作正常。对于XML解析,我使用fast-xml-parser。

return this.httpService.get(`mycoolurl`,
  {
    headers: {
      'Content-Type': 'text/xml;charset=UTF-8',
    },
  },
  )
  .pipe(map((res) => { ... });
vlju58qv

vlju58qv1#

同时,我找到了一个解决方案,用responseType arraybuffer调用API,然后使用TextDecoder来正确解码数据,在NestJS中,你可以使用“transformResponse”来完成这个任务:

{
  responseType: 'arraybuffer',
  transformResponse: [
  (data) => {
    const decoder = new TextDecoder('ISO-8859-1');
    return decoder.decode(data);
   },
  ],
},

相关问题