求大神赐教编码问题?

小气包yuzhi 2013-07-13 10:41:44
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;


public class Demo8 {
public static void main(String [] args) throws IOException {
String str = "中国";
System.out.print("默认:"+Arrays.toString(str.getBytes())+"\r\n");
System.out.println("gbk2312码表:"+Arrays.toString(str.getBytes("gb2312")));
System.out.println("utf-8码表:"+Arrays.toString(str.getBytes("utf-8")));
System.out.println("unicode码表:"+Arrays.toString(str.getBytes("unicode")));

FileWriter writer = new FileWriter("d:\\1.txt");
writer.write(str);
writer.flush();
FileInputStream in = new FileInputStream("d:\\1.txt");
System.out.println("我一个一个字节的读回来怎么不一样了");
System.out.print(in.read()+"-");
System.out.print(in.read()+"-");
System.out.print(in.read()+"-");
System.out.print(in.read()+"-");
System.out.print(in.read()+"-");
System.out.print(in.read()+"-");


}
}
...全文
148 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
无聊找乐 2013-07-13
  • 打赏
  • 举报
回复
一个汉字是两个字节
adobe2000 2013-07-13
  • 打赏
  • 举报
回复
str.getBytes()设置不同编码格式得到的数组是不一样的
  • 打赏
  • 举报
回复
一样才怪呢,编码不同生成的字节数组当然也有不同。。。。。。
nmyangym 2013-07-13
  • 打赏
  • 举报
回复
把输出改成byte型,回=会和“默认”时输出的结果一样。

            System.out.print((byte)(in.read()&0xff) +", ");
            System.out.print((byte)(in.read()&0xff) +", ");
            System.out.print((byte)(in.read()&0xff) +", ");
            System.out.print((byte)(in.read()&0xff) +", ");
            System.out.print((byte)(in.read()&0xff) +", ");
            System.out.print((byte)(in.read()&0xff));
小气包yuzhi 2013-07-13
  • 打赏
  • 举报
回复
没有回答我要问的问题啊,我说的是写入的utf-8编码和读出来的utf-8怎么不一致???

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧