用POI解析Excel 出现的不能识别的编码问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用POI解析Excel 出现的不能识别的编码问题相关的知识,希望对你有一定的参考价值。

详细如下:
1. 使用POI解析读取Excel文档,里面有中文,有数字,大概有20个列,然后解析出来很多地方的最后面有一个问号,但是用问号匹配又不对,所以猜测其是乱码,或者说是不能显示的代码。
2.部分代码如下:
// 取得单元格
HSSFCell cell = row.getCell(i + startCellNo);
if (null != cell)
cell.setCellType(Cell.CELL_TYPE_STRING);// 设置为字符串
// 取得字符串值
String value = cell.getStringCellValue();
value = value.replaceAll( "[^\u8140-\ufefe]+ ", " ");//过滤非中文字符,换成gbk的编码范围
value = value.replaceAll( "[^\u4e00-\u9fa5]+ ", " ");//过滤非中文字符,换成gbk的编码范围
value = value.replaceAll("\\?", "");
System.out.println(value.indexOf("?")); // 此处结果打印出来全是 -1
...
// 以上的代码均不能把数据正确显示
// 正常的 "五华区" 显示出来就是"五华区 ?"
// 我采用的方法是针对有问号的列,截取掉最后一个字符
但是这种方法非常不好,因为有的时候是这一列,有的时候是那一列,所有偶尔会多截取了,比如 "五华区"变成"五华"这种情况。
特此请教:
1. 怎么把那个最后的问号去掉,让数据显示正常。
2. 怎么设置Excel文档,让其没有这种乱码或者说符号。
以上两个问题只要回答出来一个,确实可用即可,好像100分式最多的分了。谢谢。
不知道问题里可不可以留下联系方式,我的Email是:551996458#qq.com.可用向我发邮件或者发消息,也可用直接回答,我每天都看的。

弱弱的问一句:你输出以后的界面有查找替换功能吗?把所有的?替换掉追问

呵呵,我是想存放到数据库之中,显示不太重要。

参考技术A 求同解呀。。。。。

以上是关于用POI解析Excel 出现的不能识别的编码问题的主要内容,如果未能解决你的问题,请参考以下文章

字符编码及文件操作

字符编码表

java poi 读取excel文件 用wps编辑之后不能读取,只能读取office的

学习总结2019.3.26

poi解析excel2003和2007有没有办法是用同样的方法实现

针对个别utf8编码站点在iis7上浏览器编码不能自动识别的解决方法