【发布时间】:2021-01-09 19:40:53
【问题描述】:
我正在开发一个应用程序来在线获取立法并自动解析和格式化它以适应应用程序。我正在使用的测试站点是
http://www.planalto.gov.br/ccivil_03/constituicao/constituicao.htm
我想获取该 URL 的所有内容,解析(也许是清理)它们并将它们放入一个文件中。我正在使用 Jsoup,这是我用来连接并将内容打印到文件的 Runnable:
class FetchHtmlRunnable implements Runnable {
String url;
FetchHtmlRunnable(String url) {
this.url = url;
}
@Override
public void run() {
try {
Document doc = Jsoup.parse(new URL(url), 10000);
doc.charset(Charset.forName("windows-1252"));
Charset charset = doc.charset();
String htmlString = Jsoup.clean(doc.toString(), new Whitelist());
Log.d(TAG, "run: HTMLSTRING: " + htmlString);
String root = context.getFilesDir().toString();
file = new File(root + File.separator + "law.txt");
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file, false), charset);
out.write(htmlString);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
但是,尽管 Chrome 告诉我该站点的编码是 windows-1252,但日志条目和文件不仅填充了替换字符(它丢失了所有带有变音符号的字符,例如 í 和 ã),它也丢失了所有新行:
Constitui��o Presid�ncia da Rep�blica Casa Civil Subchefia para Assuntos Jur�dicos CONSTITUI��O DA REP�BLICA FEDERATIVA DO BRASIL DE 1988 Vide Emenda Constitucional n� 91, de 2016 Vide Emenda Constitucional n� 106, de 2020 Vide Emenda Constitucional n� 107, de 2020 Emendas Constitucionais Emendas Constitucionais de Revis�o Ato das Disposi��es Constitucionais Transit�rias Atos decorrentes do disposto no � 3� do art. 5� �NDICE TEM�TICO Texto compilado PRE�MBULO N�s, representantes do povo brasileiro, reunidos em Assembl�ia Nacional Constituinte para instituir um Estado Democr�tico, destinado a assegurar o exerc�cio dos direitos sociais e individuais, a liberdade, a seguran�a, o bem-estar, o desenvolvimento, a igualdade e a justi�a como valores supremos de uma sociedade fraterna, pluralista e sem preconceitos, fundada na harmonia social e comprometida
也许在网络开发方面做得更好的人可以告诉我这是否是网页本身的问题以及我该如何解决这个问题...以及如何保留换行符。
【问题讨论】: