当前位置: 首页 > 知识库问答 >
问题:

当输出为UTF-8时保留html实体?

翟源
2023-03-14

我想在使用JSOUP的同时保留html实体。下面是一个来自网站的utf-8测试字符串:

String html = "<html><body>hello &#151; world</body></html>";

String parsed = Jsoup.parse(html).toString();

如果用utf-8打印解析后的输出,看起来像序列—被转换成一个代码点值为151的字符。

当输出为UTF-8时,有没有一种方法让JSoup保留原始实体?如果我以ascii编码输出:

Document.OutputSettings settings = new Document.OutputSettings();
settings.charset(Charset.forName("ascii"));
Jsoup.parse(html).outputSettings(settings).toString();

我会得到:

hello &#x97; world

这正是我要找的。

共有1个答案

艾学海
2023-03-14

您找到了Jsoup缺少的一个特性(在撰写本文时为Jsoup 1.8.3)。

我可以看到三种选择:

在https://github.com/jhy/jsoup上发送一个功能请求我不确定你会很快被添加...

请使用以下SO答案中提供的解决方法:https://stackoverflow.com/A/34493022/363573

编写一个自定义的NodeVisitor,它将带有代码点值的字符转换回它们的HTML等效转义序列。

 类似资料:
  • 有一个有趣的问题。。我们的防火墙后面有一个wordpress XML/RSS服务,该服务本地化到多个国家,可以与中文、俄文等完美结合。 为了公开这个服务,我们创建了一个简单的JSP服务,由于某些原因,它不会呈现外来字符。 任何想法都将不胜感激。

  • 问题内容: 我在Java中有以下代码行: 编写者不会编写UTF-8文件,因为当我在notepad ++中打开文件时,它表示编码为:ANSI作为UTF-8。我需要它是纯UTF-8。 你有什么建议吗? 问题答案: notepad ++(和任何其他工具)只能 猜测 编码,它不会写在文件(或某些元数据)的任何位置。 并且,如果您编写的文本不包含ASCII范围之外的任何字符(即,Unicode码点> 127

  • 编写了以下两个函数,用于存储和检索任何Python(内置或用户定义)对象,并结合使用json和jsonickle(在2.7中) 我还没有用用户定义的对象测试过这两个函数,但是当我试图保存()一个内置的字符串字典时,(即。{'Adam': 'Age 19 ',' Bill ',' Age 32'}),并且我检索相同的文件,我得到相同的unicode字典,{u'Adam': u'Age 19 ',u'

  • 默认情况下,当您将命令的输出重定向到文件或通过管道将其导入PowerShell中的其他内容时,编码是UTF-16,这是不有用的。我想把它改成UTF-8。 可以通过将语法替换为来逐个实现,但每次都要重复这样做会很尴尬。 在PowerShell中设置东西的持久方法是将它们放在中;我已经验证了这个文件确实是在启动时执行的。 曾经说过,可以使用设置输出编码,但我尝试过,没有效果。 https://blog

  • 我正在尝试将一些UTF-8字符输出到JSON文件。 当我保存文件时,它们是像这样编写的: {“some_key”: “Enviar invitaci\u00f3n privada”} 上述操作是有效的。当我加载文件并打印“some_key”时,它会在终端中显示“Enviar invitación Private ada”。 是否无论如何都要编写带有“some_key”作为编码版本的JSON文件,如

  • 问题内容: 我有一个移动Web应用程序,其无序列表包含多个列表项,每个li内都有一个超链接: …我的问题是如何格式化超链接,以使它们在iPhone上查看时不会改变大小,并且加速计从纵向切换为横向?现在,我将超链接的字体大小指定为14px,但是切换到横向时,它会炸裂到20px。我希望字体大小保持不变。这是代码: 问题答案: 您可以通过CSS属性禁用此行为: