为啥java 用IO流读docx文件里的内容打印在控制台是乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥java 用IO流读docx文件里的内容打印在控制台是乱码相关的知识,希望对你有一定的参考价值。

谢谢你们的回答...我刚试了的,还是乱码?

肯定是乱码啊...那是因为docx 里面的东西其实进行过某些格式整合到一起的文件 你可以把一个word文件的后缀改成zip 解压缩打开看一下就知道...
java读取docx里面的东西 可以使用 poi ,具体怎么做可以在网上搜一下
参考技术A 读出来的东西,你重新编码一下,再打,就应该没问题了。 参考技术B docx其实是一个zip文件。 参考技术C 设置编码
File file = new File(文件路径);
InputStreamReader read = new InputStreamReader(new FileInputStream(file),编码);
BufferedReader br = new BufferedReader(read);

Java 使用流读文本数据时乱码 解决方法

一、问题描述

  当我使用FileReader读取文本文件里的汉字时,读出来的是乱码。但为什么字符是正常的呢???

二、原因探究

  其根本原因在于编码标准不同。汉字采用gbk,而idea使用UTF-8。gbk编码中文是2个字节,UTF-8编码是3个字节代表一个字符,read读到的是一个字节,一个中文,当然就读半个字节了,不完全当然是乱码了。

三、解决方法

  将FileReader改用FileInputStream读取文件,就OK啦:

InputStreamReader reader = new InputStreamReader(new FileInputStream(filepath), "GBK");
BufferedReader br = new BufferedReader(reader);
String line;
while ((line = br.readLine()) != null) {
//。。。
}

以上是关于为啥java 用IO流读docx文件里的内容打印在控制台是乱码的主要内容,如果未能解决你的问题,请参考以下文章

docx怎么转换成word文档

Java 使用流读文本数据时乱码 解决方法

为啥下载下来的东西打开是网页

chorm谷歌浏览器为啥打不开.docx文件了(而是变成直接下载)?

如何将word 文件.docx转成.PDF文件

java 如何去除html中的一个指定标签和指定标签里的内容