【发布时间】:2014-12-26 16:33:19
【问题描述】:
我正在开发一个 Liferay 门户,其中有 2 种不同类型的 portlet:
<portlet>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<supported-locale>de</supported-locale>
<supported-locale>en</supported-locale>
<resource-bundle>path.to.Resource</resource-bundle>
...
</portlet>
和
<portlet>
<portlet-class>com.liferay.util.bridges.mvc.MVCPortlet</portlet-class>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>HELP</portlet-mode>
</supports>
<supported-locale>de</supported-locale>
<supported-locale>en</supported-locale>
<resource-bundle>path.to.Resource</resource-bundle>
...
</portlet>
问题在于第一个 portlet 以 ISO-8859-1 编码读取资源包,而第二个 portlet 以 UTF-8 读取。这导致在其中一个 portlet 中以一种奇怪的方式显示特殊字符,如 äöüß。如果资源包(.properties 文件)包含 ä,那么它会在第一个 portlet 中奇怪地显示。如果资源包包含 UTF-8 编码的 \u00E4,则在第二个 portlet 中显示错误。可能是什么原因以及如何解决?
【问题讨论】: