A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 未名以律 中级黑马   /  2014-8-10 12:48  /  1406 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 未名以律 于 2014-8-11 08:02 编辑

用FileInputStream读取文件,byte[5]长度,读中文会出现乱码,怎么解决?

8 个回复

倒序浏览
读取中文是按照两个字节组合成一个中文的,所以我想用字节流的话长度应该为偶数才好,要不然就得用字符流读取中文。
回复 使用道具 举报
不会吧,定义好循环就可以啊。读的时候是将字符拆成两个字节读的
回复 使用道具 举报
你中文长度多少?
回复 使用道具 举报
基础测试还是入学测试题吧?先把所有读入的字节写入ByteArrayOutputStream,然后调用ByteArrayOutputStream的toString方法
回复 使用道具 举报
几种不同的编码方式对于英文都是同一的,中文却不太一样,有的两位,有的三位,所以缓冲区应该取最小公倍数 六的N倍最好,这样就可以保证缓冲区不会存在半个中文的情况,剩下的问题,就是编码匹配的问题了
回复 使用道具 举报
如果需要在properties文件中用中文字符的话是不能直接写完,必须先运行一下
native2ascii src.properties dest.properties
这个des.properties才能被property正确读取出中文字符
回复 使用道具 举报
fantacyleo 发表于 2014-8-10 21:14
基础测试还是入学测试题吧?先把所有读入的字节写入ByteArrayOutputStream,然后调用ByteArrayOutputStream ...

谢谢啊,好像就是用你说的这种方法
回复 使用道具 举报
:):):):):):):):):)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马