Liferay门户:UTF-8编码

Liferay门户:UTF-8编码,liferay,liferay-6,Liferay,Liferay 6,我对liferay门户编码有问题。特殊(UTF8)字符(如šššć)显示不正确(所有字符都显示为�) 标题看起来不错: <meta content="text/html; charset=UTF-8" http-equiv="content-type" /> 我正在将liferay从6.0.5升级到6.1.2。使用6.0.5,一切正常。 首先,我认为language.properties文件可能是问题所在,但portlet中的文本也已损坏 Im使用WebLogicWebServ

我对liferay门户编码有问题。特殊(UTF8)字符(如šššć)显示不正确(所有字符都显示为�)

标题看起来不错:

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

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

Im使用WebLogicWebServer 10.3.4

编辑: 正确显示Portlet中未翻译的静态文本

但potlets中的翻译文本(使用liferay ui:message标记)已损坏


有什么想法吗?

编码可能会在许多不同的级别出错:数据库应该使用UTF-8,驱动程序也应该配置为使用这种编码。appserver(和Java)的默认编码也可能在其中发挥作用。然后Web服务器/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
add
file.encoding=UTF-8
中添加即可。这为我解决了问题

谢谢您的回答,但我认为这不是数据库问题。Portlet中未翻译的静态文本将正确显示。Potlet中的翻译文本-使用标记已损坏-意味着liferay无法读取语言f是的,文件是UTF-8编码的。这可能是appserver和Java的默认编码,但为什么6.0.5工作没有任何问题?(Ofc。我还检查了所有设置,它们都是正确的。)你是否在与6.0.5完全相同的appserver上运行6.1.2?在同一台服务器上,所有方面都是相同的配置?如果不是:你能试试这个吗?是的…一切都一样。我刚刚将liferay portal.war文件更改为较新版本,并更改了依赖项文件。仅此而已。所有其他更改都是由liferay升级过程完成的。我解决了问题。这是应用程序服务器设置。在6.1.2中必须是UTF-8,在6.0.5中我有ISO-8859-2。我已经检查了该设置,但似乎我读取了错误的文件。我猜您是指system-ext.properties。