中文字符占两个字节,一个字节8位,两个字节16位,你说的只转换了中文汉字的一半,是不是出来一个??,之所以会乱码,就是因为解码的时候把一个汉字的一部分当成一个字符解析了,所以我们处理乱码的目的就是告诉Window,这是一个汉字,请连续读两位,明白吗?
原因可能就是楼上说的,不过你可以加个byte[]数组来读取。或者用其它流,比如:BufferedReader等...
中文使用unicode码,它占2 - 4个字节,一般为2字节。字符用ASCII码。可能问题就在这边吧。具体还是不清楚。
编码问题吧,读取的时候最好设置一下读取字节的编码,可能你的文件不是unicode的