该问题的根本原因是axios请求返回的数据是以二进制格式获取的,而在将其转换为字符串时没有指定正确的编码格式。因此,解决该问题的方法是在axios请求中添加正确的编码格式。
以下是一个示例代码:
axios.post('https://example.com/api', data, { responseType: 'arraybuffer' })
.then(response => {
const decoder = new TextDecoder('utf-8');
const data = decoder.decode(response.data);
console.log(data);
})
.catch(error => {
console.log(error);
});
在此示例中,我们将responseType
选项设置为arraybuffer
,以便获取二进制数据。然后,我们将使用TextDecoder
将二进制数据转换为字符串,并指定正确的编码格式。在此示例中,我们指定使用UTF-8编码格式进行转换。
使用正确的编码格式,我们可以正确地将二进制数据转换为字符串,并避免出现奇怪的符号。