为了账号安全,请及时绑定邮箱和手机立即绑定

怎么将汉字“中”正常读出来呢?

老师说中属于utf-16be,可以单独读出来,但是怎么单独读出来呢?

正在回答

4 回答

其实写入'a' 不会干扰,写入'a'的后8位正好符合gbk编码,而是中间写入了int数,这个收到了干扰。



0 回复 有任何疑惑可以回复我~

只要你的编码方式保持一致就可以了~

你这“中”字前面有没有写入其他的,有时候也是受到前面的干扰,比如write("A");这样的,写入只写了一个字节,但是一个字符却是两个字节,但是读出来的时候只是1个字节,所以读到后面的时候就可能会出现问题。【不过我们也能看出来这1个字节表示的是这个字符】

你也可以利用seek()来确定确定“中”字的位置,然后开始读,这样的话,都不会出现问题,就是稍微有一丢丢麻烦。

楼上的应该就是利用系统默认的编码方式我gbk。

0 回复 有任何疑惑可以回复我~
#1

leowei

gbk 1个英文占一个字节,中文占两个字节, 写de时候,是符合gbk的格式的,读的时候为啥会出现乱码
2016-10-31 回复 有任何疑惑可以回复我~

我这也没有出乱码啊  直接就读出来了 

??????

占个地  谁能讲解讲解

0 回复 有任何疑惑可以回复我~
#1

helloworld2008

不是吧。。。老师的都试过了。不管是gbk还是utf-16be都是乱码啊。。
2016-11-10 回复 有任何疑惑可以回复我~

在中的起始位置读两个字节到字节数组b里,再转化成utf-16be的字符串就可以了。

String s=new String(b,"utf-16be");

0 回复 有任何疑惑可以回复我~
#1

leowei

这样理解是错误的。虽然是中在java 中是utf-16be 编码。但是写的时候已经被getbyte(buf,"gbk");已经编码成了 gbk。 所以读的时候也应该是String s=new String(buf,"gbk");
2016-10-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

怎么将汉字“中”正常读出来呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信