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文件。
準確地說,你是在編寫XML嗎?如果你只是寫字符串,那麼我可以保證你在許多方面做錯了,尤其是UTF-8轉換。閱讀此更多信息:http://www.kdgregory.com/index.php?page=xml.builder – kdgregory 2009-09-18 16:13:53
如果您正在閱讀Excel,我非常懷疑字符串是否在固定編碼中,請參閱http://sc.openoffice .ORG/excelfileformat.pdf – Mark 2009-09-18 16:58:33