【问题标题】:Liferay portal: UTF-8 encodingLiferay 门户:UTF-8 编码
【发布时间】:2015-01-16 13:40:03
【问题描述】:

我遇到了 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 的文本也已损坏。

我正在使用 weblogic webserver 10.3.4。

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

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

有什么想法吗?

【问题讨论】:

    标签: liferay liferay-6


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答,但我认为这不是数据库问题。正确显示来自 portlet 的未翻译静态文本。 potlets 中的翻译文本 - 使用 标记已损坏 - 意味着 liferay 无法正确读取语言文件……是的,文件采用 UTF-8 编码。
    • 它可能是 appserver 和 Java 的默认编码,但为什么 6.0.5 可以正常工作? (Ofc。我还检查了所有设置,它们是正确的。)
    • 您是否在与 6.0.5 完全相同的应用服务器上运行 6.1.2?在同一台服务器上,所有方面的配置相同?如果没有:你能试试这个吗?
    • 是的...都是一样的。我只是将 liferay 门户 .war 文件更改为更新版本并更改了依赖文件。就这样。所有其他更改均由 liferay 升级过程完成。
    • 我解决了这个问题。这是应用服务器设置。在 6.1.2 中必须是 UTF-8,在 6.0.5 中我有 ISO-8859-2。我已经检查了该设置,但似乎我读取了错误的文件。
    【解决方案2】:

    我通过更改 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
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我猜你的意思是 system-ext.properties。
      猜你喜欢
      • 2011-10-30
      • 2012-11-07
      • 2015-03-04
      • 2016-07-05
      • 1970-01-01
      • 2015-11-15
      • 2011-04-27
      • 2012-09-22
      • 2019-07-17
      相关资源
      最近更新 更多