如何使用 node.js 获取 html 4 上的字符集?
How do I get the charset on html 4 with node.js?
正在尝试获取此字符集:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
当我打印响应头时:
console.log(response.headers);
我没有得到字符集,它应该在内容类型中:
{
server: 'Apache',
'content-type': 'text/html',
expires: 'Mon, 19 Jan 2015 11:53:58 GMT',
'content-language': 'en', etag: '"95c66e83dfd2080ec86ec4e20964788d"',
'x-pal-host': 'pal115.telhc.bbc.co.uk:80',
'content-length': '120599',
date: 'Mon, 19 Jan 2015 11:53:44 GMT', connection: 'keep-alive',
...
}
如何在 node.js 的 html 4 个网站上获取字符集?
提前致谢。
<meta>
标记不是 header,因此它们的值不会显示在 HTTP 响应的 headers
属性 中。您需要解析响应 body。这确实提出了一个问题:你怎么知道如何在不知道编码的情况下解析某些东西?
这是 Web 浏览器粗略处理未在 Content-Type
header 中正确定义其内容类型的文件的方式,我上次检查时:
- 开始使用 (user-defined) 默认值解析文档 body,例如
UTF-8
.
- 猜猜用的是什么字符集:比如有很多字节是
UTF-8
中的non-printable字符,但恰好在Shift JIS
中常用,那么你可能正在处理这个问题。
- 如果解析器恰好检测到以下情况之一:
<meta http-equiv="Content-Type">
<meta charset="">
然后部分解析的文档被抛出并从文件顶部解析 re-starts。
您会明白为什么始终在字符集中包含 Content-Type
header 是个好主意。对于您的应用程序,如果您不太担心某些文件出现乱码,则可以省略第 2 步。
作为一个很好的例子,Whosebug 本身设置了 Content-Type
header,因此它没有(需要)<meta charset>
或 <meta http-equiv="content-type">
标签。
正在尝试获取此字符集:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
当我打印响应头时:
console.log(response.headers);
我没有得到字符集,它应该在内容类型中:
{
server: 'Apache',
'content-type': 'text/html',
expires: 'Mon, 19 Jan 2015 11:53:58 GMT',
'content-language': 'en', etag: '"95c66e83dfd2080ec86ec4e20964788d"',
'x-pal-host': 'pal115.telhc.bbc.co.uk:80',
'content-length': '120599',
date: 'Mon, 19 Jan 2015 11:53:44 GMT', connection: 'keep-alive',
...
}
如何在 node.js 的 html 4 个网站上获取字符集? 提前致谢。
<meta>
标记不是 header,因此它们的值不会显示在 HTTP 响应的 headers
属性 中。您需要解析响应 body。这确实提出了一个问题:你怎么知道如何在不知道编码的情况下解析某些东西?
这是 Web 浏览器粗略处理未在 Content-Type
header 中正确定义其内容类型的文件的方式,我上次检查时:
- 开始使用 (user-defined) 默认值解析文档 body,例如
UTF-8
. - 猜猜用的是什么字符集:比如有很多字节是
UTF-8
中的non-printable字符,但恰好在Shift JIS
中常用,那么你可能正在处理这个问题。 - 如果解析器恰好检测到以下情况之一:
<meta http-equiv="Content-Type">
<meta charset="">
然后部分解析的文档被抛出并从文件顶部解析 re-starts。
您会明白为什么始终在字符集中包含 Content-Type
header 是个好主意。对于您的应用程序,如果您不太担心某些文件出现乱码,则可以省略第 2 步。
作为一个很好的例子,Whosebug 本身设置了 Content-Type
header,因此它没有(需要)<meta charset>
或 <meta http-equiv="content-type">
标签。