2012-11-01 205 views
1

我有一個允許用戶輸入長法律文本的表單。用戶可能會從Excel和/或PDF文件複製和粘貼。我遇到了特殊字符的問題,我已經把使用Java處理Excel特殊字符

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1" %> 

在我的jsp頁面的頂部。不過,我在文中看到特殊字符。

例如,在Excel文件中有如下描述:

」 ...... Rentee將支付Rentor ...... _全部租金由每月的_

的」 ...」被翻譯成┬à(帶有左到右的波浪線)。如何在Excel中看到用「...」替換這些特殊字符?

+0

向我,'\t \t字符串文本=「... Rentee將支付Rentor ..._由所有租金_月的」; \t \t System.out.println(text); '工作正常。它打印相同的文本。你可以請分享代碼,你的閱讀和儲存/打印過程如何? –

+0

下面是從文件中的文本的一部分:「...... Rentee應由月的___付Rentor爲適當...所有的租金」開頭和後「適當」上的點不是時間而是從Excel中的特殊字符。當做一個system.println它出來作爲├ó┬Ç┬ª –

回答

0

我碰到類似的問題與人複製/粘貼微軟「智能引號」爲形式的,不知道爲什麼他們不渲染或以後正確保存。我利用相當小而直接的jasciidamnit庫從任何輸入中清除這些字符。 Give the library a shot, see if it solves your problem

+0

謝謝。我試過這個工具,但它似乎無法處理來自Excel的├ó┬Ç┬ª –

+0

嘿大衛,謝謝。這在我們的測試階段正在使用,我還沒有聽到任何投訴。謝謝你的提示。 :-) –

0

發生這種情況是因爲省略號"..."正在被一個Unicode字符(u + 2026或'...')複製。您應該將pageEncoding設置爲UTF-8,因爲這是您發送的內容。

+0

是的,我試着將pageEncoding改爲UTF-8,在插入到Oracle CLOB字段之前,我仍然在我的system.out.println中獲得了├─┬┬┬┬。 –

+0

如果您將它打印到控制檯,那就是您將獲得的。控制檯不是瀏覽器,即使您發送UTF-8,也只使用ISO-8859。 –