请注意这个问题是否会及时发展,因为我逐渐找到了解决问题的最佳方法。所以现在它是一个解决方案而不是一个问题: - )。
请注意我在谈论html页面,因此编码信息出现在标题中(在元标记中)。
每个步骤都是问题,因为在任何一个步骤中我都会犯错误。所以问题是如何获取数据,存储数据,检索它并最终解析它(正确地 - 即在每一步保留编码)?
答案 0 :(得分:1)
我发现将数据保存和加载为二进制更安全,尽管它是文本。这样我就避免了编码问题 - 所以除了解析器我只使用Array [Byte]。
org.apache.commons.io.FileUtils
.writeByteArrayToFile(new File(filename),content)
G_H指出JSoup库能够自行检测编码 - 所有人必须做的就是 NOT 来传递编码信息。
val data = org.apache.commons.io.FileUtils
.readFileToByteArray(new File(filename))
val doc = org.jsoup.Jsoup.parse(new java.io
.ByteArrayInputStream(data), null,"");
var content : Array[Byte] = null
val client = new org.apache.http.impl.client.DefaultHttpClient();
val httpget = new org.apache.http.client.methods.HttpGet(url);
try {
val response = client.execute(httpget);
val entity = response.getEntity()
content = org.apache.http.util.EntityUtils.toByteArray(entity)
}
finally {
client.getConnectionManager().shutdown();
}
非常感谢G_H,JSoup是一个转折点。