博学,切问,近思--詹子知(http://blog.youkuaiyun.com/zhiqiangzhan)
在项目中经常会需要对Html输入流进行分析,那么我们首先就必须确定该文档的编码,如果编码分析错误,就会得到一堆的乱码。而且现在很多WEB Server在返回相应头的过程中也很少会指定该HTML文档的编码,因此我们只能对它的输入流就进行分析。判断的标准之一就是HTML文档中meta标记中的charset提供的信息,现在基本上大部分文档都会提供这个head字段,所以,分析这个字段是个简单而且十分有效的方法,但是,要想得到这个字段,我们必须要拿到文档的字符内容才可以,而这个时候,它的字符编码我们还不知道。由于meta标记出现在HTML文档的头部,因此我们有理由只解析这部分字符串,所以我们可以从HTML InputStream读出部分字节,把它们解码成一个字符串,然后根据这个字符串信息,我们就可以顺利拿到整个文档的编码。在这里,我们使用ISO8859-1为默认的编码,之所以选择它,很大的一点是因为它是一种无损失的编码,一旦我们不能正确的拿出文档的编码,也没有关系,只要我们知道文档正确的编码,根据ISO8859-1编码后的字符串,使用ISO8859-1解码后我们就可以得到原来字节数组。
本文介绍了一种从HTML输入流中解析文档编码的方法。通过分析HTML头部的meta标记来确定文档编码,确保正确解析文档内容。
1393

被折叠的 条评论
为什么被折叠?



