试图得到这个字符集:
<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网站上获得字符集?提前谢谢。
发布于 2015-01-19 13:55:56
<meta>标记不是标题,因此它们的值不会显示在HTTP的headers属性中。您需要解析响应体。这确实提出了一个问题:您如何知道如何在不知道编码的情况下解析某物?
这就是web浏览器如何粗略地处理未在Content-Type头中正确定义其内容类型的文件,上次我检查了:
UTF-8。UTF-8中有大量不可打印的字符,但它们恰好在Shift JIS中使用,那么您可能正在处理这个问题。<meta http-equiv="Content-Type"><meta charset="">
然后,部分解析文档被抛出,解析从文件的顶部重新启动。
您可以理解为什么总是包含带有字符集的Content-Type头是个好主意。对于您的应用程序,您可以省略步骤2,如果您不太担心某些文档被混淆的话。
作为一个很好的例子,StackOverflow本身设置了一个Content-Type头,因此它没有(需要) <meta charset>或<meta http-equiv="content-type">标记。
https://stackoverflow.com/questions/28024167
复制相似问题