【问题标题】:Java - Escape quotes in style attributeJava - 样式属性中的转义引号
【发布时间】:2016-09-15 09:12:56
【问题描述】:

在一个 Java 应用程序中,我有 HTML,作为一个字符串,看起来像这样:

<DIV STYLE=&quot;font-family:&quot;Times New Roman&quot;&quot;>

我希望对编码的引号进行解码,以便正确显示在页面上。问题是传统的StringEscapeUtils转义方法会将每个引号解码为双引号,导致HTML如下:

<DIV STYLE="font-family:"Times New Roman"">

不会在页面上正确呈现。期望的结果是 HTML 看起来像这样:

<DIV STYLE='font-family:"Times New Roman"'>

我可以通过算法检查字符串以将编码的引号替换为我想要的,但是是否有专门的方法来正确解码此类字符串的引号?

【问题讨论】:

  • 想想你的设计。您的 Java 代码中不应包含此类信息。它应该在 css 或 HTML 页面中
  • 这是在某个特定的信息位在被保存之前被解析的地方。我无法控制 HTML 的结构。
  • 问题是字符串的en编码不正确。这在解码中无法修复(它不是确定性可解码的),您需要修复编码过程。
  • 正如@ErwinBolwidt 所说,修复编码过程,或者拍打为您提供此错误编码HTML 的那个。但是如果你想将你的字符串转换成有效的HTML,你可以获取一种标记器并以某种方式确定引号是否在其他引号内,但话又说回来,你会修复由其他人引起的问题。

标签: java html decode decoding


【解决方案1】:

如果它是在你的 java 代码中定义的

您可以尝试在" 之前添加\

我想你应该期待这样的事情吧?

String randomHtmlCode = " <DIV STYLE='font-family:\"Times New Roman\"'> ";

【讨论】:

  • 我遇到的问题是将字符串中的&amp;quot; 解码为单引号或双引号,具体取决于它是否嵌套在另一个编码引号内。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
相关资源
最近更新 更多