【问题标题】:FreeMarker on Chinese OS loses a character中文操作系统上的 FreeMarker 丢失了一个字符
【发布时间】:2014-07-18 09:20:01
【问题描述】:

我将 FreeMarker 用于在中文区域设置的 Windows 7 上运行的应用程序。 .ftl 文件包含以下 XML:

<run fontname='Arial'>Æ&#10;</run>

文本是字母 Æ(AE 的字素,U+00C6)后跟一个编码的换行符。此行没有 FreeMarker 文本替换。

在文件上运行 FreeMarker 文本替换后,XML 被更改,丢失 & 符号:

<run fontname='Arial'>Æ#10;</run>

没有和号,编码的换行符会丢失,文本“#10;”而是显示。

在使用其他语言环境(英语、法语、德语,尤其是日语)运行的其他 Windows 系统中不会发生这种情况。我怎样才能避免这种情况,或者这是一个错误?

【问题讨论】:

    标签: localization freemarker chinese-locale


    【解决方案1】:

    看起来像是某种字符集不一致的结果。确保 FreeMarker 使用与实际用于模板文件的字符集相同的字符集来解码模板文件。 (对于通常为 UTF-8 的 XML。)如果您未将 FreeMarker 配置为使用特定字符集,则默认情况下它使用操作系统的默认字符集,这通常不是您想要的。假设您的文件通常是 UTF-8 格式,您需要将 default_encoding 设置 (Configuration.setDefaultEncoding) 设置为 utf-8。您还可以通过以&lt;#ftl encoding="utf-8"&gt; 开头来强制模板字符集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      • 2016-02-23
      • 2011-02-16
      • 2015-07-14
      • 1970-01-01
      • 2023-03-05
      相关资源
      最近更新 更多