我正在開發一個處理docx文件的XML內容並將其轉換爲特定格式的JAVA程序。它工作的很好,但是如果Word文件包含符號字符,例如我有問題希臘信件。在這種情況下,我只看到小方塊。從docx中提取符號字符
我檢查了源和看到這樣的事情:
<w:r w:rsidRPr="008E65F6"><w:rPr><w:rFonts w:ascii="Symbol" w:hAnsi="Symbol"/></w:rPr><w:t>ďˇ</w:t></w:r>
或者,如果我將編碼設置爲UTF-8:
<w:r w:rsidRPr="008E65F6"><w:rPr><w:rFonts w:ascii="Symbol" w:hAnsi="Symbol"/></w:rPr><w:t></w:t></w:r>
當我認爲作爲六,似乎希臘對於alpha,字符編碼爲EF 81 A1
,對於beta等編碼爲EF 81 A2
。
我也試過val.getBytes(Charset.forName("utf8"))
其中val是<w:t>
標記的值。結果是例如[-17, -127, -95]
。負面的價值對我來說是相當驚人的。
所以我的問題是,什麼是一個安全可靠的方法來將這些符號轉換爲普通的UTF-8字符?
通常,在由Word發出的docx文件中,它已經是UTF-8;請參閱主文檔部分頂部的XML聲明(/word/document.xml)。你的與衆不同嗎? – JasonPlutext
是的你是對的,它是UTF-8。但是,這些字符顯示不正確。大概符號字體不使用UTF-8字符編碼? – ttamas