html - 检测 HTML 中的字符编码

标签 html http character-encoding

我下载一个 HTML 页面。 HTTP 内容类型 header 指定一种字符编码,页面有一个 meta 标记指定另一种。正确的处理方法是什么?

我想“正确”这个词不合适,因为反正没有人遵循该死的标准……那么怎样才能使我的问题最少?

最佳答案

做与网络浏览器相同的事情:使用响应头。当通过 HTTP 提供 HTML 时,如果存在响应 header ,元标记将被忽略。仅当从本地磁盘文件系统读取 HTML 时,才使用 meta 标记。 w3 HTML spec 也明确指定了这一点.

To sum up, conforming user agents must observe the following priorities when determining a document's character encoding (from highest priority to lowest):

  1. An HTTP "charset" parameter in a "Content-Type" field.
  2. A META declaration with "http-equiv" set to "Content-Type" and a value set for "charset".
  3. The charset attribute set on an element that designates an external resource.

无论您使用何种语言,任何现有的体面的 HTML 解析器都应该已经考虑到这一点。根据您熟悉 Java 的问题历史记录,我建议您获取 Jsoup为此。

关于html - 检测 HTML 中的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436452/

相关文章:

javascript - 在同一脚本中创建各种 IndexedDB objectStore 的最佳方法是什么?

javascript - 无法在 Firefox 上点击::之后

multithreading - 如何在http中使用多个进程

android - 我怎样才能保持每 5 秒请求一次页面而不耗尽电池电量?

character-encoding - DB2 不保存风格化的撇号 (’)

java - 使用汉字从 URL 中获取图像

character-encoding - 在 neovim 缓冲区中打印随机字符

html - 如何将HTML文件转换成word?

php - 在客户端检测文件上传大小?

node.js - 如何使用nodejs发出子HTTP请求