Scanner input=new Scanner(System.in);
String s=input.nextLine();
System.out.print(s);
输入英文字符和数字没有问题,但是输入中文时有的不能显示,有的显示一些奇怪的字符。
比如输入“大”时没有显示,输入“黄飞鸿”时显示�Ʒɺ
用input.next()结果也一样。
我要用键盘输入中文,该怎样做,不想用对话框。
在集成开发环境下做的需要注意一下你编辑器的默认编码方式是否和windows默认的一致,如果编码和解码的方式不一致就会出现以上乱码
因为windows平台是基于GBK编码的,所有改为UTF-8会产生乱码!
提示:GBK一个汉字占两个字节,而UTF-8是三个字节。
可以这样,例如下列代码:
Scanner input = new Scanner(System.in);
String str = input.next();
byte[] b = str.getBytes("utf-8");
System.out.println(new String(b,"UTF-8"));
可以啊,怎么不能呢?我使用的时候可以
可能是因为在输入的过程中字符转字节的问题,可以用缓冲字符流试一下:
BufferedReader read = new BufferedReader( new InputStreamReader(System.in));
String str=read.readLine();
System.out.println(str);
read.close();
new BufferedReader(new InputStreamReader(System.in,"utf-8")).readLine()
操作:window--->preferences--->General--->Workspace---->text file encording--->选other---->GBK
或者System.getProperty("file.encoding").equalsIgnoreCase("gbk");看看你系统的编码格式是不是为gbk,还是UTF-8或者其他
乱码之后再转码一下即可