2011-07-25 41 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過濾器,但它仍然會受到打擊。看起來像頁面編碼覆蓋過濾器編碼。這些貨幣在很多地方使用,所以我甚至無法在我的服務層硬編碼。任何提示? –