在HTML中检测字符编码

时间:2011-03-25 18:15:58

标签: html http character-encoding

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

我认为'正确'不是正确的词,因为无论如何都没有人遵守该死的标准......那么导致我最少问题的方式是什么?

1 个答案:

答案 0 :(得分:13)

与webbrowsers一样:使用响应标头。当通过HTTP提供HTML时,如果存在响应标头,则元标记忽略。仅当从本地磁盘文件系统读取HTML时,才使用元标记。这也由w3 HTML spec明确指定。

  

总而言之,符合要求的用户代理必须   请注意以下优先事项   确定文档的字符   编码(从最高优先级到   最低):

     
      
  1. “Content-Type”字段中的HTTP“charset”参数。
  2.   
  3. 将“http-equiv”设置为“Content-Type”的META声明   为“charset”设置的值。
  4.   
  5. 在指定外部的元素上设置的charset属性   资源。
  6.   

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