2009-09-18 87 views
1

這一切都混淆在我的腦海中,我無法把頭圍住它。Excel到XML,編碼問題

我有一個excel文件,我必須解析,使用Java,並轉換爲XML。使用jExcel庫,我可以實現解析,並且應用程序可以做正確的工作,並將正確的字符串放在正確的位置。所以對於解析部分,我已經涵蓋了。

當我嘗試將文件轉碼爲UTF-8時出現問題。

我認爲excel文件的編碼是ISO-8859-1,但我不確定它是否是。然後,在將我的字符串添加到xml文件之前,我使用此函數。

private static String isoToUtf(String thingie){ 
     byte[] bytedata = thingie.getBytes() ; // Comes in ISO form, as the character set in the DB is set to ISO 

     Charset iso = Charset.forName("ISO-8859-1"); 
     CharsetDecoder isodecoder = iso.newDecoder(); 
     ByteBuffer bbuf = ByteBuffer.wrap(bytedata); 
     CharBuffer cbuf = isodecoder.decode(bbuf); // Decode from ISO to UTF-16 


     Charset utf8 = Charset.forName("UTF-8"); 
     CharsetEncoder utf8encoder = utf8.newEncoder(); 
     ByteBuffer outbuffer = utf8encoder.encode(cbuf); // Encode from UTF-16 to UTF-8 
     return new String(outbuffer.array(), "UTF-8"); 
    } 

不知何故,它不起作用。我仍然失去了一些腐敗的人物。

另外:我絕對必須這樣做,它必須最終顯示在音符上。

使用java.io.File類打開excel文件。

+0

準確地說,你是在編寫XML嗎?如果你只是寫字符串,那麼我可以保證你在許多方面做錯了,尤其是UTF-8轉換。閱讀此更多信息:http://www.kdgregory.com/index.php?page=xml.builder – kdgregory 2009-09-18 16:13:53

+0

如果您正在閱讀Excel,我非常懷疑字符串是否在固定編碼中,請參閱http://sc.openoffice .ORG/excelfileformat.pdf – Mark 2009-09-18 16:58:33

回答