中国操作系统上的FreeMarker失去了一个角色

时间:2014-05-28 23:54:18

标签: localization freemarker chinese-locale

我将FreeMarker用于中文语言环境中运行在Windows 7上的应用程序。 .ftl文件包含此XML:

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

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

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

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

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

在与其他语言环境(英语,法语,德语,尤其是日语)一起运行的其他Windows系统中不会发生这种情况。我该如何避免这种情况,或者这是一个错误?

1 个答案:

答案 0 :(得分:0)

看起来是某种字符串分歧的结果。确保FreeMarker使用相同的字符集来解码模板文件,就像实际使用的字符集一样。 (对于通常为UTF-8的XML。)如果您没有将FreeMarker配置为使用特定的字符集,则默认情况下它使用操作系统的默认字符集,这通常不是您想要的。假设您的文件通常为UTF-8,则需要将default_encoding设置(Configuration.setDefaultEncoding)设置为utf-8。您也可以使用<#ftl encoding="utf-8">启动模板字符集。