JAva Excel api 中的编码和中文问题

  本人一直以来使用java excel api来进行excel的读写操作, 个人认为这个API比Apache的Excel api稳定, 尽管在大文件处理时有outOfMemroyException抛出, 但是只要在编程的时候, 注意一些细节, 可以避免, 然而在这个星期一件怪事发生:

   环境: jdk 1.4.2.12 widows2003 在一个客户的机器上, 读取Excel发生乱码, 第一想到的是系统的local设置有问题, 利用System.getProperties()将所有系统变量打印出来。 发现和我的机器一模一样。

   第2 个解决之道  new String (str.getBytes("ISO8859-1"),"GBK")这个我想各位都是可以理解的, 还是不行, 于是乎utf-8 utf-16 gb2312互相转化, 还是不行。

   第3个解决办法: 下载源代码, 跟踪调试, 总算找到原因:Java excel api使用的编码方式是:UnicodeLittle, 而在jdk1.2.12里面支持的是标准写法UTF-16LE 改成这个写法, 重新编译, 打包jar, 完全解决, 历时8个小时。

    中途我问过同事, 是否在我们自己机器使用同一个版本的jdk, 回答是肯定的, 我放弃了更换jdk测试来排除错误, 白白花了4个小时。

方便各位下载:我把我打包的jar上传在此

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值