Jsoup的Charset

时间:2015-04-24 15:07:59

标签: html character-encoding jsoup

我使用Jsoup库。

  

执行以下代码后:

Document doc = new Document(language);

File input = new File("filePath" + "filename.html");
PrintWriter writer = new PrintWriter(input, "UTF-8");

String contentType = "<%@ page contentType=\"text/html; charset=UTF-8\" %>";
doc.appendText(contentType);

writer.write(doc.toString());
writer.flush();
writer.close();
  

在输出html文件中,我收到以下文本:

&lt;%@ page contentType=&quot;text/html; charset=UTF-8&quot; %&gt;

而不是

<%@ page contentType="text/html; charset=UTF-8" %>

可能是什么问题?

2 个答案:

答案 0 :(得分:1)

这些是转义字符,用于防止浏览器将它们视为html标记。这不是一个问题。当您通过浏览器打开页面时,它将正确呈现

答案 1 :(得分:0)

这里有一些问题:

Document doc = new Document(language);

不要这样做。请改用Jsoup.parse(...)

<%@ page contentType="text/html; charset=UTF-8" %>

这不是HTML,可能无法正确解析。

现在,为你的问题。你应该使用像

这样的东西
Document document = Jsoup.parse(new ByteArrayInputStream(myHtmlString.getBytes(StandardCharsets.UTF_8)), "ISO-8859-1", BaseUrl);

检查thisthisthis,了解您可能需要的输出设置。