2011-07-25 46 views
0

我试图在我的jsp中使用格式编号标签从apache fmt标签库中显示foriegn货币,它显示垃圾char数据。我可以确认,当我在控制台上打印输出时,控制器中的“动态货币符号值”正确显示,并且我明确地将响应对象编码设置为UTF-8和jsp页面编码,并将字符集设置为UTF-8。设置区域不会有帮助,因为交易采用FORGEN货币,任何交易都可以在全球任何地方查看。JSp显示外币为垃圾

似乎有一个格式编号标签的错误,但不确定任何替代品。 mail-archives.apache.org/mod_mbox/tomcat-taglibs-user/200308.mbox/%[email protected]%3E 我检查了这个欧元和日元。

我粘贴了我的jsp http://pastebin.com/eZAKKeJ9的部分代码。我尝试打印浏览器以确定传递给标记的是什么,所以它的垃圾邮件行545告诉并且第564行告诉格式编号以货币传递。 和处理程序http://pastebin.com/H21fdbZm。检查浏览器以确保其默认已更改为UTF-8。任何帮助表示赞赏。 编辑:垃圾邮件不允许我发布超过2个链接。

+0

未来,请不要将外部链接粘贴到源代码。在相关问题中直接粘贴**相关代码段**。不,不要粘贴> 1400行的完整JSP文件。只需粘贴对结果/问题有影响的相关片段即可。如果你基于它创建了一个SSCCE,那么最理想的是,即尽可能小的copy'n'paste'n'executabele代码片段,它仍然会重现该问题。 – BalusC

回答

1

从您的代码:当bean的属性实际上返回非UTF-8字符出现

currencySymbol="${txnFormBean.originalCurrencySymbol}" 

此问题。你需要在源码中修正它。它是一个Java文件吗?确保该文件保存为UTF-8。它是一个属性文件?确保您使用unicode转义序列。它是一个数据库条目吗?确保表使用UTF-8。等等

+0

Balu,DB上的列是Nvarchar2,它被转换为UTF-16.so我试着在我的响应对象中设置为utf-16,并用urf-16覆盖我的jsp页面。但是我的jsp包含一个使用默认iso-8519-1编码的页面。所以它爆发了一个有约束力的异常,我尝试使用基于url映射的spring characterencoding过滤器,但它仍然会受到打击。看起来像页面编码覆盖过滤器编码。这些货币在很多地方使用,所以我甚至无法在我的服务层硬编码。任何提示? –