【发布时间】:2014-01-27 03:55:52
【问题描述】:
我遇到了一个问题,我的 .properties 文件中的某些值无法在我的 UI 中正确呈现,但大多数都可以。我看到的不是带有变音符号的字母,而是 HTML 实体名称。我将解释到目前为止我所做的事情:
起初我无法正确渲染任何带有变音符号的字母。幸运的是,我找到了this post,并且通过在我的 .properties 文件中使用转义的 Unicode 取得了进展。
(附带说明,虽然转义 Unicode 主要解决了这个问题,但它使 .properties 文件难以阅读。幸运的是,IDEA 为您提供了使用转义 unicode 的选项,并且仍然使用人类可读的字符读取文件。阅读更多here。)
现在这是我当前的问题:在我的应用程序的某些部分,带有变音符号的字母显示为 Latin-1 HTML 实体名称。例如,我看到的不是“ç”,而是“& amp;ccedil;” (我在 & 和 amp 之间添加了一个额外的空格,否则它会呈现为 & 符号)。起初,我什至不知道这意味着什么,但在查看 this table 之后,我知道这是一个 ISO-8859-1 实体名称。
这就是我到目前为止所尝试的,尽管没有什么能成功给我带有变音符号的字符。
-
虽然我仍在使用 Glassfish 2,但我找到了this post,并尝试将以下内容添加到我的 web.xml
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>现在,当我在 Chrome 开发工具中检查响应标头时,我可以看到以下内容:
Content-Type:text/html;charset=UTF-8但是,我仍然在我的 UI 中看到上述 HTML 实体名称。
-
我尝试通过将以下内容添加到从 .properties 文件中提取值的 JSP 中显式设置 JSP 本身的字符集:
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %> 在尝试解决此问题时,我了解到 ISO 8895-1 是属性文件的默认编码,因此我尝试在 IDEA 中更改编码(我使用的是 11,顺便说一句)。您可以通过转到“设置”>“文件编码”来执行此操作。底部是一个名为“属性文件的默认编码”的选项,我将其更改为 UTF-8。但是,我仍然看到 HTML 实体名称。
我已经尝试了一段时间,但我终于无能为力了。有什么建议吗?
【问题讨论】:
标签: jsp jakarta-ee unicode utf-8 glassfish