【发布时间】:2022-01-01 22:37:26
【问题描述】:
我创建了一个 NodeJS 应用程序,它应该从外部 API-Server 获取一些数据。该服务器仅以 'Content-Type: text/plain;charset=ISO-8859-1' 的形式提供其数据。我通过服务器的 Header-Data 获得了这些信息。
现在对我来说问题是像“ä”、“ö”或“ü”这样的特殊字符显示为 �。 我尝试使用 Iconv 将它们转换为 UTF-8,但后来我得到了这些东西 '�'...
我的问题是,我做错了什么?
为了测试,我使用 Postman。这些是我测试所有内容的步骤:
- 使用 Postman 触发我的 NodeJS 应用程序
- 应用从 API-Server 请求数据
- API-Server 向 NodeJS App 发送数据
- 我的应用程序打印出 API 的原始响应数据,其中已经包含那些奇怪的字符 �
- 应用程序然后尝试使用 Iconv 将它们转换为 UTF-8,现在它向我显示了这个 '�' 字符
另一个奇怪的事情: 当我将 Postman 直接连接到 API-Server 时,特殊字符会显示出来,因为它们也没有问题。因此我猜我的应用程序会导致问题,但我看不出在哪里或为什么......
// Javascript 代码:
try {
const response = await axios.get(
URL
{
params: params,
headers: headers
}
);
var iconv = new Iconv('ISO-8859-1', 'UTF-8');
var converted = await iconv.convert(response.data);
return converted.toString('UTF-8');
} catch (error) {
throw new Error(error);
}
【问题讨论】:
标签: node.js utf-8 iso-8859-1 iconv charset