老师说中属于utf-16be,可以单独读出来,但是怎么单独读出来呢?
其实写入'a' 不会干扰,写入'a'的后8位正好符合gbk编码,而是中间写入了int数,这个收到了干扰。
只要你的编码方式保持一致就可以了~
你这“中”字前面有没有写入其他的,有时候也是受到前面的干扰,比如write("A");这样的,写入只写了一个字节,但是一个字符却是两个字节,但是读出来的时候只是1个字节,所以读到后面的时候就可能会出现问题。【不过我们也能看出来这1个字节表示的是这个字符】
你也可以利用seek()来确定确定“中”字的位置,然后开始读,这样的话,都不会出现问题,就是稍微有一丢丢麻烦。
楼上的应该就是利用系统默认的编码方式我gbk。
我这也没有出乱码啊 直接就读出来了
??????
占个地 谁能讲解讲解
在中的起始位置读两个字节到字节数组b里,再转化成utf-16be的字符串就可以了。
String s=new String(b,"utf-16be");