我的程序是:
import java.io.* ;
public class stringinput {
    
    public static void main(String[] args)throws IOException {
     BufferedReader buf;
     String str;
     buf=new BufferedReader(new InputStreamReader(System.in));
     str=buf.readLine();
     System.out.println("str为"+str);
    }
}
运行成功后,在执行时从键盘中输入的str为多于两个字的中文字符时就会出错了,但输入西文字符不会。如:输入 我爱我的家。 只显示:我爱?
这是怎么回事啊

解决方案 »

  1.   

    需要补充的是我用的是Jcerator Pro,
    如果用命令提示符解释的话不会出现上述情况!
      

  2.   


    import java.io.*;public class Test6
    { public static void main(String[] args) throws IOException
    {
    BufferedReader buf;
    String str;
    buf = new BufferedReader( new InputStreamReader( System.in ) );
    str = buf.readLine();
    System.out.println( "str为" + str );
    }
    }
    在我的机器上没有问题啊
      

  3.   

    应该是工具的问题,用new InputStreamReader(System.in, "UTF-8") 试试
      

  4.   

    import java.io.*;public class Test6
    {    public static void main(String[] args) throws IOException
        {
            BufferedReader buf;
            String str;
            buf = new BufferedReader( new InputStreamReader( System.in ) );
            str = buf.readLine();
            System.out.println( "str为" + str );
        }
    }
      

  5.   

    输出到你的开发工具的控制台了还是系统命令行了?如果是命令行,编码应该是GBK,如果是你的开发工具就不清楚了,先做相应编码转换在输出