我的客户很激动我使用链接的title属性来放置包含注册商标符号“®”的署名。我修改代码的能力非常有限,这基本上让我有两个选择,通过转义序列& reg;并且不要转义输出,或者传递符号本身并让JSF处理转义序列。我更喜欢前者,并尝试了几种变体,并且完全无法阻止序列的转移,所以我总是以& reg;在标题中。
<h:outputLink
value="#{url}"
title="#{stringContainingEscapeSequence}"
escape="false"
>
<h:outputText value="#{myLinkText}" />
</h:outputLink>
<h:outputLink
value="#{url}"
>
<f:attribute name="title" value="#{stringContainingEscapeSequence}" escape="false"/>
<h:outputText value="#{myLinkText}" />
</h:outputLink>
上述任何一项都没有将未转义的值传递给页面,当我以原始格式插入®符号时,我最终得到的是“À”而不是符号。
TL; DR:有谁知道如何阻止JSF自动标记title属性的值?我在后端知道java,但我不使用JSF。
答案 0 :(得分:1)
...当我以原始形式插入®符号时,我最终会使用“À®”而不是符号。
这听起来像是一个字符集不匹配;例如原始字节用一种字符编码表示,但浏览器认为应该使用不同的字符编码。
如果您无法找到防止自动转移的方法,请尝试修复字符编码不匹配。