有没有一种方法可以在服务器端检测网站字符编码



我需要从任何有网络请求的网站中提取HTML并显示它,问题是由于字符编码的差异,一些网站的内容字符无法以正确的方式显示。

我当前的代码是这样的:(算上这是一个服务器端代码(

const response = await fetch(url);
const buffer = await response.arrayBuffer();
const decoder = new TextDecoder("iso-8859-15");
const decoded = decoder.decode(buffer);

然而,iso-8859-15或utf-8都不适用于所有网站。

所以我需要一种动态的方式来知道每个网站的正确方式

对于任何有同样问题的人,这里是我的解决方案

const response = await fetch(url);
const headers = Object.fromEntries(response.headers.entries());
const contentType = headers["content-type"];
const charset = contentType.split("=")[1];
const buffer = await response.arrayBuffer();
const decoder = new TextDecoder(charset);
const decoded = decoder.decode(buffer);

最新更新