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上傳在此

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章