我想读表和详细的数据在Microsoft Word文档(DOCX文件)使用Apache POI细胞。该文件包含UTF-8编码的字符(僧伽罗语言)。我正在使用以下代码块。读UTF-8编码的文本里面的内容表中MS-Word文件使用Apache POI
FileInputStream fis = new FileInputStream("path\\to\\file.docx");
XWPFDocument doc = new XWPFDocument(fis);
Iterator<IBodyElement> iter = doc.getBodyElementsIterator();
while (iter.hasNext()) {
IBodyElement elem = iter.next();
if (elem instanceof XWPFTable) {
List<XWPFTableRow> rows = ((XWPFTable) elem).getRows();
for(XWPFTableRow row :rows){
List<XWPFTableCell> cells = row.getTableCells();
for(XWPFTableCell cell : cells){
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(cell.getText());
}
}
}
}
但我没有在输出控制台中得到正确的UTF-8字符。
我已经参考了多种解决方案,包括以下内容。
How to parse UTF-8 characters in Excel files using POI |我正在尝试在Word文件中读取表格。所以我的Cell
对象没有getStringCellValue()
方法。
http://www.herongyang.com/Java-Tools/native2ascii-Set-UTF-8-Encoding-in-PrintStream.html |我已经试过这个解决方案,它不工作。
没有人知道如何使用Apache POI的word文件读取UTF-8编码的字符?
您是否尝试过'URLEncoder.encode(cell.getText(), “UTF-8”)'?并打印这个呢? – alirabiee
@alirabiee,刚刚尝试过,它也没有工作。无论如何,文本不是一个URL。 –
这是IDE的控制台设置的问题。哪个IDE被使用?通常'System.out.println(cell.getText());'应该工作。没有明确的'PrintStream'定义需要。 –