首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用node.js在html 4上获得字符集?

如何使用node.js在html 4上获得字符集?
EN

Stack Overflow用户
提问于 2015-01-19 11:59:21
回答 1查看 321关注 0票数 0

试图得到这个字符集:

代码语言:javascript
复制
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

当我打印响应头时:

代码语言:javascript
复制
console.log(response.headers);

我没有得到字符集,它应该在内容类型中:

代码语言:javascript
复制
{ 
    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网站上获得字符集?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-19 13:55:56

<meta>标记不是标题,因此它们的值不会显示在HTTP的headers属性中。您需要解析响应体。这确实提出了一个问题:您如何知道如何在不知道编码的情况下解析某物?

这就是web浏览器如何粗略地处理未在Content-Type头中正确定义其内容类型的文件,上次我检查了:

  1. 开始使用(用户定义的)默认值来解析文档正文,比如UTF-8
  2. 猜猜使用的字符集是什么:例如,如果UTF-8中有大量不可打印的字符,但它们恰好在Shift JIS中使用,那么您可能正在处理这个问题。
  3. 如果解析器碰巧检测到以下情况之一:
    • <meta http-equiv="Content-Type">
    • <meta charset=""> 然后,部分解析文档被抛出,解析从文件的顶部重新启动。

您可以理解为什么总是包含带有字符集的Content-Type头是个好主意。对于您的应用程序,您可以省略步骤2,如果您不太担心某些文档被混淆的话。

作为一个很好的例子,StackOverflow本身设置了一个Content-Type头,因此它没有(需要) <meta charset><meta http-equiv="content-type">标记。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28024167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档