Apacheのpoiを使用してMicrosoft Word文書(docxファイル)でテーブルと正確なデータを読み取ろうとしています。このファイルには、UTF-8エンコードされた文字(シンハラ語)が含まれています。私は次のコードブロックを使用しています。Apache POIを使用してMS-wordファイル内のテーブルセル内にUTF-8エンコードされたテキストコンテンツを読み取る
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 |私はすでにこのソリューションを試して、それは動作していません。
誰もがUTF-8エンコードされた文字をワードファイルでapache poiを使って読む方法を知っていますか?
URLEncoder.encode(cell.getText()、 "UTF-8") 'を試したことがありますか?代わりにこれを印刷しますか? – alirabiee
@alirabiee、ちょうど試して、そのいずれかが動作していません。とにかくテキストはURLではありません。 –
IDEのコンソール設定に問題があります。どのIDEが使用されていますか?通常は 'System.out.println(cell.getText());'は動作するはずです。明示的な 'PrintStream'定義は必要ありません。 –