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

Html 强制JSF转义unicode中的特殊字符,html,jsf,unicode,Html,Jsf,Unicode,可以强制JSF以unicode方式转义特殊字符吗而不是命名实体方式ä 背景:一些旧的移动设备(例如安卓2.3.4版的HTC Desire)拒绝显示包含命名实体的页面: 此页包含以下错误。。。未定义实体“auml” 该页面具有HTML5 Doctype,并且auml是一个。 所以我认为这是一个浏览器错误,但这对我没有帮助 我试图用unicode表示法替换特殊字符。但是如果我放置一个ä甚至一个和#228JSF将为我呈现一个ä。 如果我将实体映射放在doctype中(我知道这不应该在H

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

背景:一些旧的移动设备(例如安卓2.3.4版的HTC Desire)拒绝显示包含命名实体的页面:

此页包含以下错误。。。未定义实体“auml”

该页面具有HTML5 Doctype,并且
auml
是一个。 所以我认为这是一个浏览器错误,但这对我没有帮助

我试图用unicode表示法替换特殊字符。但是如果我放置一个
ä
甚至一个
和#228JSF将为我呈现一个
ä。
如果我将实体映射放在doctype中(我知道这不应该在HTML5 doctype中进行),行为会变得非常奇怪:

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

...
]>
这将导致在没有映射的情况下生成正确的HTML5 doctype。但是一个
&mdash将替换为
而非
ä不会被替换


有人对此有解释吗,或者是否有可能将JSF配置为始终呈现unicode转义实体?

如果您将
设置为不兼容unicode的编码,则会发生这种情况

相应地进行修正:

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


由于Facelets上使用了JSF2,顺便说一句,这已经是默认值,因此如果您确实在Facelets上使用JSF2,您可以安全地忽略它。

什么JSF impl/version?无法使用默认修剪的Mojarra 2.1.25进行复制。然而,我记得在古代版本中对这种不重要的东西进行编码。如果将
显式设置为不兼容Unicode的编码,也会发生这种情况,但这是一个太明显的原因对我来说很好。。。您没有将其作为XML MIME类型提供,是吗?尽管HTML5试图回避这个问题,但是,
auml
和其他HTML实体不是用XML预定义的,应该被XML解析器拒绝。设置
将是一个太明显的原因。但显然对我来说不是。谢谢你的暗示和羞辱。虽然我的问题没有解决,但问题还是得到了回答。谢谢@bobince再次测试。内容类型为text/html,字符集为ISO-8859-15,因此不应将文档视为XML。还是我在这里遗漏了什么?啊
contentType
不一定默认为
text/html
,因此您还是应该手动设置它。看见JSF中一个糟糕的设计,如果你要求我使用XML模式,那么除了实体问题之外,如果你没有预料到的话,很容易破坏一半的JavaScript。