Java中如何解决使用FileInputStream读取中文文件乱码问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计697个文字,预计阅读时间需要3分钟。
1. 前提:读取编码为GBK的文件为例,文件内容仅含中文和中文符号。
2.原因:使用FileInputStream读取中文乱码是因为一个中文对应两个字节存储(负数)。
3.解释:也就是说,读取对应中文的字节数应与实际字节数匹配。
1、前提
以读取编码是GBK的文件为案例,文件内容只有中文和中文符号
2、原因
FileInputStream读中文乱码是因为一个中文对应两个字节存储(负数),也就是说,读取对应中文的字节数应该是偶数; 而英文对应一个字节存储。FileInputStream每次读取一个数组长度的字节时,读取的中文字节数可能是奇数,也就是只读到中文的一半字节,出现乱码。
3、解决方法
一次读取所有字节,此方法不靠谱,因为不确定总字节数。
本文共计697个文字,预计阅读时间需要3分钟。
1. 前提:读取编码为GBK的文件为例,文件内容仅含中文和中文符号。
2.原因:使用FileInputStream读取中文乱码是因为一个中文对应两个字节存储(负数)。
3.解释:也就是说,读取对应中文的字节数应与实际字节数匹配。
1、前提
以读取编码是GBK的文件为案例,文件内容只有中文和中文符号
2、原因
FileInputStream读中文乱码是因为一个中文对应两个字节存储(负数),也就是说,读取对应中文的字节数应该是偶数; 而英文对应一个字节存储。FileInputStream每次读取一个数组长度的字节时,读取的中文字节数可能是奇数,也就是只读到中文的一半字节,出现乱码。
3、解决方法
一次读取所有字节,此方法不靠谱,因为不确定总字节数。

