我正在尝试使用JSTL formatNumber标记在JSP页面中输出带分组和小数位的数字,类似于以下内容:
<fmt:formatNumber value="${form.amount}" pattern='###,##0.00' />
如果在tag和page指令中将编码设置为ISO-8859-1,它对lang = en,fr和es工作正常,但如果我将其设置为UTF-8,则lang = fr不再正常工作。正如预期的那样,小数点变为逗号,但组分隔符变为 。
作为对格式的测试,我把模式排除了,所以我只是
<fmt:formatNumber value="${form.amount}" />
结果是一样的。
作为对编码的测试,我在页面中添加了一些ISO-8859-1不支持的法语字符,例如Œ,œ和非常罕见的Ÿ,并且它们在编码设置为UTF-8,但是当编码设置为ISO-8859-1时,它们会出现乱码,正如预期的那样,所以看起来编码正确地设置为UTF-8。浏览器还指示编码为UTF-8。
这是一个Spring应用程序,它使用locale拦截器根据请求中的'lang'参数设置语言环境。
我还能尝试什么?
编辑:我想我已经弄明白了,但我不确定为什么我做了什么。我正在使用Tiles,我有一个主JSP文件定义页面的布局,其中4个tile定义了meta,header,main和footer区域的子页面。我最初有&lt;%@ page pageEncoding =“UTF-8”%&gt;只在布局JSP中,认为tile定义会继承它,但似乎并非如此。我需要将该指令添加到每个页面,如果我想要更改,这是一个痛苦。它应该如何运作?