为什么如下方法把inputstream转为String的时候会出错? 本帖最后由 AA5279AA 于 2013-09-03 11:49:09 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一次:is.read(b)第二次:is.read()这个应该是根源,个人感觉第一次正好读到了半个中文字,而第二次是逐个字节读 BufferedInputStream bis = new BufferedInputStream(is, "UTF-8");加上这个试试 用InputStreamReader吧,使用InputStream读取2048位有很大可能末字未读取到完整的编码,从而使用其构造字符串时导致错误编码.文字读取可以使用InputStreamReader(inputStream, "UTF-8")来操作 同意一楼,读取“微”时打印的byte数组值,转为utf-8编码时,解析失败,出现乱码。要么换一个编码如GBK,要么就用第二个方法。inputstream 转byte数组时,用的是什么编码格式,求解? 这样读一定是会出错的额!在每次2048个字节读完以后你不能保证这些字节就是刚刚好几个中文字符可能把后面一个中文字符给拆开来了,这样在用new String(b, 0, n, "UTF-8")转成string就会出现乱码了。后面一个是把所有的字节都读完了在同一装换就不会出现字符被拆的现象 请问初学者要做CDLC1.1+MIDP2.0的项目,可以看哪些书? java学习的无赖 jfreechar饼图百分比问题 如何用java在局域网中得到某电脑的共享目录 JTextField的问题 javaBean 是否能在应用程序里面调用??怎么调用?? import问题,希望大家关注一下 翻译问题? 写入Access2000出现No ResultSet was produced错误,但数据已经写入,部分语句如下: 项目归来,总结并散分! ArrayList和LinkedList的速度问题 《新手干中学》数据流的接收处理及结果转发或显示
第二次:is.read()这个应该是根源,个人感觉第一次正好读到了半个中文字,而第二次是逐个字节读
加上这个试试
文字读取可以使用InputStreamReader(inputStream, "UTF-8")来操作
读取“微”时打印的byte数组值,转为utf-8编码时,解析失败,出现乱码。
要么换一个编码如GBK,要么就用第二个方法。inputstream 转byte数组时,用的是什么编码格式,求解?