强制JSF转义unicode中的特殊字符

时间:2013-09-03 15:45:11

标签: html jsf unicode

是否可以强制JSF以unicode-way ä而不是命名实体方式ä转义特殊字符?

背景:一些旧的移动设备(例如,带有Android 2.3.4的HTC-Desire)拒绝显示包含命名实体的页面:

  

此页面包含以下错误...实体'auml'未定义。

该网页包含HTML5-Doctype,according to the specification aumlvalid predefined character-reference。 所以我认为这是一个浏览器错误,但这对我没有帮助。

我尝试用他们的unicode表示替换特殊字符。但是,如果我在视图中放置ä甚至ä,JSF会向我显示ä。 如果我将实体映射放在doctype中(我知道这不应该在HTML5-doctype中完成),行为会变得非常奇怪:

<!DOCTYPE html [
    <!ENTITY auml "&#228;">
    <!ENTITY mdash "&#8212;">
    ...
]>

这将导致没有映射的正确HTML5文档类型。但&mdash;将替换为&#8212;&auml;将不会被替换。

是否有人对此进行了解释,或者是否有可能将JSF配置为始终呈现unicode-escaped权限?

1 个答案:

答案 0 :(得分:1)

如果您将<f:view encoding>设置为非Unicode兼容编码,则会发生这种情况。

相应修复:

<f:view encoding="UTF-8">

从Facelets上的JSF2开始,顺便说一下,这是默认值,所以如果你确实在Facelets上使用JSF2,你可以安全地省略它。