我正在爬行页面以获取信息,并且在 Groovy 中解析页面时遇到了许多问题。我已经使用 juniversal chardet 制作了大部分时间都有效的半解决方案,只需扫描页面头部的标签,但有时在一页上找到其中两个标签,例如:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
是否有使用哪个标准(第一个,最后一个,两者......?)或一些更简单的方法来做到这一点?谢谢。
最佳答案
我会启发式地这样做:
- 一切实际上都是 ASCII 吗?如果是这样,那么使用哪一个都没有关系。
- 它符合有效的 UTF-8 吗?如果是这样,我会用它。
- 否则,请使用 ISO-8859-1。
您可能还想查看从 Web 服务器返回的内容类型 header ...
从根本上来说,该页面已损坏,但上面应该给出合理的“最佳猜测”。
关于java - 页面上有两个字符集标签,该采用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1233756/