尝试在 Freemarker 中输出双倍数量时出现奇怪的字符

Weird character when trying to output Double amount in Freemarker

美好的一天

当尝试使用 Freemarker 显示双倍数量时,这个奇怪的字符被插入到数量中:Â

Example of original amount: 1257.12
Freemarker output: 1Â 257,12 

为什么会这样?

编辑:

通过在 ftlx 文件的 header 部分将字符集设置为 UTF8 解决了这个问题。

您看到的是 U+00A0 的编码不匹配表示,它是南非数字组分隔符 - 一个不间断的 space.

U+00A0的UTF-8表示是两个字节:0xC2 0xA0。当这些字节被解码为 ISO-8859-1 时,您最终得到 U+00C2 U+00A0 - 这是“”,后跟不间断的 space.

所以基本上,如果您可以说服所有相关人员使用相同的编码 - 最好是 UTF-8 - 你应该没问题。