黑马程序员技术交流社区

标题: 小问题 [打印本页]

作者: 王红霞    时间: 2012-7-21 16:19
标题: 小问题
  1. import java.io.*;
  2. class  EncodeStream
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 writeText();
  7.                 readText();
  8.         }
  9.         public static void readText() throws IOException
  10.         {
  11.                 InputStreamReader isr=new InputStreamReader(new FileInputStream("d:\\123\\utf.txt"),"UTF-8");
  12.                 char[] buf=new char[1024];
  13.                 int len=isr.read(buf);
  14.                 String str=new String(buf,0,len);
  15.                 System.out.println(str);
  16.                 isr.close();
  17.         }
  18.         public static void writeText() throws IOException
  19.         {
  20.                 OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("d:\\123\\utf.txt"),"GBK");
  21.                 osw.write("你好");
  22.                 osw.close();
  23.         }
  24. }
复制代码
================================================================================================
  1. import java.io.*;
  2. class  EncodeStream
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 writeText();
  7.                 readText();
  8.         }
  9.         public static void readText() throws IOException
  10.         {
  11.                 InputStreamReader isr=new InputStreamReader(new FileInputStream("d:\\123\\utf.txt"),"GBK");
  12.                 char[] buf=new char[1024];
  13.                 int len=isr.read(buf);
  14.                 String str=new String(buf,0,len);
  15.                 System.out.println(str);
  16.                 isr.close();
  17.         }
  18.         public static void writeText() throws IOException
  19.         {
  20.                 OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("d:\\123\\utf.txt"),"UTF-8");
  21.                 osw.write("你好");
  22.                 osw.close();
  23.         }
  24. }
复制代码
UTF-8是三个字节,GBK是两个字节,为什么第一个程序打印出问号?没有可能是前三个字节恰好读成了一个汉字 后面一个字节是问号吗?

1.jpg (38.64 KB, 下载次数: 9)

1.jpg

2.jpg (12.77 KB, 下载次数: 11)

结果

结果





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2