Primefaces Ajax更新上的欧元符号

Primefaces Ajax更新上的欧元符号,ajax,jsf,primefaces,Ajax,Jsf,Primefaces,我试图在我的页面上写上欧元货币符号。当我加载页面时,它工作得非常完美,但是当我通过AJAX进行部分更新时,没有正确加载Euro符号。我尝试了3种不同的方法: <h:outputText value="&euro;" /> <h:outputText value="&#x26;euro;" /> <h:outputText value="€" /> 在使用AJAX进行部分更新时,没有一个可以正常工作: ? &euro; € 实现中

我试图在我的页面上写上欧元货币符号。当我加载页面时,它工作得非常完美,但是当我通过AJAX进行部分更新时,没有正确加载Euro符号。我尝试了3种不同的方法:

<h:outputText value="&euro;" />
<h:outputText value="&#x26;euro;" />
<h:outputText value="€" />
在使用AJAX进行部分更新时,没有一个可以正常工作:

?
&euro;
€
实现中所述的过滤器时的结果与上述相同

我花了一整天的时间试图解决这个问题。谢谢你的帮助

谢谢, Douglas.

您发现的仅适用于HTTP请求参数(提交的表单值)的解码。但这不适用于您的情况。显然,HTTP响应的编码(HTML/XML输出生成)存在问题

HTTP响应的编码至少可以通过两种方式进行控制:

  • 中声明的编码,默认为UTF-8。这也可以通过
    ExternalContext#setResponseCharacterEncoding()
    以编程方式进行设置,但JSF开发人员通常不会这样做
  • 用于保存物理模板文件的编码。这实际上并不影响在生成HTML/XML输出期间使用的编码,但会影响字符的处理方式。如果模板文件使用与
    不同的编码(如ISO-8859-1)保存,则字符可能以类似的方式结束
在您的特定情况下,如果您没有修改
(否则您很可能会在问题中明确提到),那么最可能的原因是您的模板文件使用错误的编码保存。这将依次在编辑器本身中进行配置。如果它是例如Eclipse,那么您需要通过窗口>首选项>常规>工作区>文本文件编码来设置它

另见:
您发现的仅适用于HTTP请求参数(提交的表单值)的解码。但这不适用于您的情况。显然,HTTP响应的编码(HTML/XML输出生成)存在问题

HTTP响应的编码至少可以通过两种方式进行控制:

  • 中声明的编码,默认为UTF-8。这也可以通过
    ExternalContext#setResponseCharacterEncoding()
    以编程方式进行设置,但JSF开发人员通常不会这样做
  • 用于保存物理模板文件的编码。这实际上并不影响在生成HTML/XML输出期间使用的编码,但会影响字符的处理方式。如果模板文件使用与
    不同的编码(如ISO-8859-1)保存,则字符可能以类似的方式结束
在您的特定情况下,如果您没有修改
(否则您很可能会在问题中明确提到),那么最可能的原因是您的模板文件使用错误的编码保存。这将依次在编辑器本身中进行配置。如果它是例如Eclipse,那么您需要通过窗口>首选项>常规>工作区>文本文件编码来设置它

另见:

页面的编码是什么?如果编码是UTF-8,最底层的方法就可以了。你解决了我的问题。我使用的是ISO-8859-1。我改成了UTF-8,最底层的工作非常好。页面的编码是什么?如果编码是UTF-8,最底层的方法就可以了。你解决了我的问题。我使用的是ISO-8859-1。我换成了UTF-8,最底层的工作非常好。
?
&euro;
€