Java中如何解决使用FileInputStream读取中文文件乱码问题?

2026-05-15 23:550阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计697个文字,预计阅读时间需要3分钟。

Java中如何解决使用FileInputStream读取中文文件乱码问题?

1. 前提:读取编码为GBK的文件为例,文件内容仅含中文和中文符号。

2.原因:使用FileInputStream读取中文乱码是因为一个中文对应两个字节存储(负数)。

3.解释:也就是说,读取对应中文的字节数应与实际字节数匹配。

Java中如何解决使用FileInputStream读取中文文件乱码问题?

1、前提

以读取编码是GBK的文件为案例,文件内容只有中文和中文符号

2、原因

FileInputStream读中文乱码是因为一个中文对应两个字节存储(负数),也就是说,读取对应中文的字节数应该是偶数; 而英文对应一个字节存储。FileInputStream每次读取一个数组长度的字节时,读取的中文字节数可能是奇数,也就是只读到中文的一半字节,出现乱码。

3、解决方法

一次读取所有字节,此方法不靠谱,因为不确定总字节数。

阅读全文

本文共计697个文字,预计阅读时间需要3分钟。

Java中如何解决使用FileInputStream读取中文文件乱码问题?

1. 前提:读取编码为GBK的文件为例,文件内容仅含中文和中文符号。

2.原因:使用FileInputStream读取中文乱码是因为一个中文对应两个字节存储(负数)。

3.解释:也就是说,读取对应中文的字节数应与实际字节数匹配。

Java中如何解决使用FileInputStream读取中文文件乱码问题?

1、前提

以读取编码是GBK的文件为案例,文件内容只有中文和中文符号

2、原因

FileInputStream读中文乱码是因为一个中文对应两个字节存储(负数),也就是说,读取对应中文的字节数应该是偶数; 而英文对应一个字节存储。FileInputStream每次读取一个数组长度的字节时,读取的中文字节数可能是奇数,也就是只读到中文的一半字节,出现乱码。

3、解决方法

一次读取所有字节,此方法不靠谱,因为不确定总字节数。

阅读全文