2017-01-19 2 views
0

Ich habe einen Kunden, der vehement ist, dass ich das Titelattribut eines Links verwende, um eine Byline einzufügen, die das eingetragene Markensymbol "®" enthält. Ich habe eine sehr begrenzte Fähigkeit, ihren Code zu ändern, der im Grunde mit zwei Optionen verlassen, die Escape-Sequenz übergeben & reg; und entkomme nicht der Ausgabe oder passiere das Symbol selbst und lasse JSF die Escape-Sequenzen behandeln. Ich würde ersteres bevorzugen, und habe es in mehreren Variationen versucht, und bleibe völlig unfähig, die Flucht der Reihenfolge zu verhindern, so dass ich immer mit & reg; im Titel.Verhindern des Escaping des Titelattributs in outputLink

<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> 

Weder von dem obigen Ergebnis in einem unescaped Wert auf der Seite übergeben wird, und wenn ich das ® Symbol in Rohform einzufügen, ich am Ende mit „À ®“ statt nur das Symbol.

TL; DR: Weiß jemand, wie man JSF davon abhält, den Wert eines Titelattributs autoescaping? Ich kenne Java am Backend, aber ich benutze JSF nicht.

Antwort

1

... und wenn ich das ®-Symbol in roher Form einfüge, bekomme ich "À®" und nicht nur das Symbol.

Das klingt für mich wie ein Charset Mismatch; z.B. Die rohen Bytes werden in einer Zeichenkodierung dargestellt, aber der Browser denkt, dass eine andere Zeichenkodierung verwendet werden sollte.

Wenn Sie keine Möglichkeit finden, das AutoScaping zu verhindern, versuchen Sie, die Zeichencodierung zu beheben.

+0

Oder ein falsches zusätzliches Zeichen in der Zeichenfolge (da das ® sichtbar ist) – Kukeltje

Verwandte Themen