我正在开发一个Liferay Portal,我有两种不同类型的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编码读取资源包,而第二个以UTF-8读取第二个portlet。这导致在其中一个portlet中以奇怪的方式显示äöüß等特殊字符。如果资源包(.properties文件)包含ä,那么它将在第一个portlet中奇怪地显示。如果资源包中包含UTF-8编码的\ u00E4,则在第二个portlet中显示错误。可能是什么原因以及如何解决?
答案 0 :(得分:0)
由于Liferay假定资源为UTF-8,因此解决此问题的唯一方法是为两个portlet分配两个不同的资源文件。这是不幸的,但我能想到的唯一解决方案。