2012-11-01 162 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。 –