Localization 中文操作系统上的FreeMarker丢失一个字符

Localization 中文操作系统上的FreeMarker丢失一个字符,localization,freemarker,chinese-locale,Localization,Freemarker,Chinese Locale,我有一个FreeMarker正在运行在Windows7上的中文区域的应用程序上使用。 .ftl文件包含以下XML: <run fontname='Arial'>Æ&#10;</run> 10; 文本是字母Æ(AE的字形,U+00C6),后跟编码的换行符。此行没有FreeMarker文本替换 在文件上运行FreeMarker文本替换后,XML将更改,并丢失符号和: <run fontname='Arial'>Æ#10;</run> 10

我有一个FreeMarker正在运行在Windows7上的中文区域的应用程序上使用。 .ftl文件包含以下XML:

<run fontname='Arial'>Æ&#10;</run>
10;
文本是字母Æ(AE的字形,U+00C6),后跟编码的换行符。此行没有FreeMarker文本替换

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

<run fontname='Arial'>Æ#10;</run>
10;
如果没有符号,编码的换行符将丢失,而显示文本“#10;”


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

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