0

我有一个 react native 项目,我试图获取一个 html 页面并解析它,以显示它的一些内容。

我最初使用 react 的 fetch api 执行请求。但是,我得到的页面是使用 ISO-8859-7 字符集编码的,如标题“Content-Type: text/html;”所示。charset=iso-8859-7' 存在于响应中,并且有几个字符格式错误(如 '????')。查看文档,我发现:

响应总是使用 UTF-8 解码

因此,我尝试使用 XMLHttpRequest api 和iconv-lite执行请求,如答案中所述。但是,字符仍然无法正确显示。

接下来,我尝试使用 axios 执行请求,使用 iconv ( ref ),然后使用iso-8859-7 npm 包 ( ref ) 进行解码,但仍然无济于事。

之后,我尝试使用 superagent 执行请求,使用它的charset 插件,(再次使用 iconv 和 iso-8859-7 npm 包分别进行解码)但字符又是 '????'。

我还尝试在我执行的所有请求中将“Accept-Charset”标头设置为“utf-8”,但这根本没有改变响应。除了 Web 浏览器之外,正确显示 html 页面的唯一方法是通过 Postman,尽管我在 Postman 的请求标头中没有看到任何特别之处。

这是我使用提到的包所遵循的过程的抽象伪代码:

图标:

performRequest().then(response => iconv.decode(Buffer.from(response.data)))

ISO-8859-7 包:

performRequest().then(response => iso88597.decode(response.data))

任何帮助将不胜感激!

使用的打包PS版本:

"react-native": "^0.63.3"

"react": "16.13.1"

"axios": "^0.21.0"

"iconv-lite": "^0.6.2"

"superagent": "^6.1.0"

"superagent-charset": "^1.2.0"

"iso-8859-7": "^1.0.0"

4

0 回答 0