我有一个客户,他强烈要求我使用链接的title属性来放置一个包含注册商标符号"®“的署名。我修改他们的代码的能力非常有限,这基本上给我留下了两个选择,传递转义序列®而不转义输出,或者传递符号本身并让JSF处理转义序列。我更喜欢前者,并且已经尝试了几种变体,并且仍然完全无法阻止序列的转义,所以我总是在标题中以®结尾。
<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>
以上两种情况都不会导致未转义的值被传递到页面,并且当我以原始形式插入®符号时,我以“+®”结束,而不仅仅是符号。
有人知道如何阻止JSF自动转义title属性值吗?我知道java在后端,但我不使用JSF。
发布于 2017-01-19 13:51:57
...当我以原始形式插入®符号时,我以“±®”结尾,而不仅仅是符号。
对我来说,这听起来像是字符集不匹配;例如,原始字节用一种字符编码表示,但浏览器认为应该使用不同的字符编码。
如果您找不到防止自动转义的方法,请尝试修复字符编码不匹配问题。
https://stackoverflow.com/questions/41741541
复制