Java FileInputStream读中文乱码问题解决方案

上传:qqstrategy55120 浏览: 9 推荐: 0 文件:pdf 大小:63.53 KB 上传时间:2022-06-15 05:56:30 版权申诉

以读取编码是GBK的文件为案例,文件内容只有中文和中文符号FileInputStream读中文乱码是因为一个中文对应两个字节存储(负数),也就是说,读取对应中文的字节数应该是偶数; 而英文对应一个字节存储。FileInputStream每次读取一个数组长度的字节时,读取的中文字节数可能是奇数,也就是只读到中文的一半字节,出现乱码。一次读取所有字节,此方法不靠谱,因为不确定总字节数。在输出时进行判断,遍历数组判断负数的个数,如果是奇数,说明读取到中文的一半字节,对数组进行扩容再输出;否则正常输出

上传资源
用户评论