Liferay 传送门:UTF-8 编码

Liferay portal: UTF-8 encoding

我在使用 liferay 门户编码时遇到了问题。像 ščšć 这样的特殊 (UTF8) 字符显示不正确(它们都显示为 �)

Header 看起来不错:

<meta content="text/html; charset=UTF-8" http-equiv="content-type" />

我正在将 liferay 从 6.0.5 升级到 6.1.2。使用 6.0.5 一切正常。 首先我认为 language.properties 文件可能是问题所在,但来自 portlet 的文本也已损坏。

我正在使用 weblogic 网络服务器 10.3.4。

编辑: 来自 portlet 的未翻译静态文本已正确显示。

但是 potlet 中的翻译文本(使用 liferay-ui:message 标签)已损坏。

有什么想法吗?

编码可能在许多不同的层面上出错:数据库应使用 UTF-8,驱动程序也应配置为使用此编码。应用程序服务器(和 Java's)的默认编码也可能发挥作用。然后 webserver/appserver 连接和代理可以发挥作用。

与之前版本一样,开始检查数据库以及数据库驱动程序使用的内容(例如驱动程序的URL)。准备好使用备份。从包含混合编码的数据库中恢复真的很难。

我通过更改 JVM 设置解决了这个问题。 在 weblogics 文件 setDomainEnv.cmd 中,我更改了 Dfile.encoding。 对于 liferay 6.0.5,我使用的是:

set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx1024m -Dfile.encoding=ISO-8859-2

Liferay 6.1.2 要求:

set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx1024m -Dfile.encoding=UTF-8

您只需在 portal-ext.properties 中添加 file.encoding=UTF-8。这为我解决了问题