【问题标题】:Html ASCII rendering issueHtml ASCII 渲染问题
【发布时间】:2014-07-11 18:20:03
【问题描述】:

我正在使用 Java 资源包来管理消息。

我需要在网页中显示一条消息,并且该消息还包含一些 HTML 标记。不幸的是,HTML 代码也显示在屏幕上,而不是被浏览器呈现为 HTML:

daggerMessage=‡ ‡ Symbol indicates situational entry, at least one is required.

<p class="text-right asteriskMessage">‡#{heading.daggerMessage}</p>

这就是我得到的。

� &#135; Symbol indicates situational entry, at least one is required.

有什么想法吗?非常感谢!

【问题讨论】:

    标签: html jsf xhtml ascii


    【解决方案1】:

    符号&amp;#135; 特定于基于 HTML 和 XML 的标记语言,不应期望在任何上下文中都有效。此外,它在 HTML5 之前的 HTML 中正式未定义,但实际上网络浏览器将其视为表示“‡”U+2021 DOUBLE DAGGER。

    character “‡” 在 UTF-8 编码中是 0xE2 0x80 0xA1。似乎对这些字节执行了一些不正确的映射,然后以某种 8 位编码解释结果字节以产生“�”。所以你所拥有的是编码不匹配,并且可能是错误的重新编码。从给出的数据来看,不可能给出更准确的分析(好吧,有人可能会做出明智的猜测......)。

    【讨论】:

    • 是的。所以答案是 a) 检查源或 http 标头中设置了哪种编码,b) 使用 &amp;#x2021;&amp;Dagger; 作为匕首。
    • @MrLister,a) 这实际上是使实际编码和 declad 编码匹配的问题,所以你需要知道两者,并且 b) 使用 &amp;#x2021;&amp;Dagger; 在你拥有之后是不必要的修复了 a) 问题。
    • 这可能是不必要的,但它比&amp;#135; 更好,&amp;#135; 总是一个错误。如果您不知道去哪里寻找,那么解决 a) 可能就不是那么容易了。
    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 2012-08-31
    • 2016-12-13
    • 2012-08-25
    • 1970-01-01
    相关资源
    最近更新 更多