黑马程序员技术交流社区

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

作者: 耿鑫    时间: 2012-6-24 10:48
标题: Scanner问题
本帖最后由 耿鑫 于 2012-6-24 23:07 编辑

Scanner scanner = new Scanner(System.in)

String str = scanner.next();

System.out.println(str);
上面输入中文会乱码,怎么支持输入中文问题

运行环境是eclipse,默认编码是UTF-8,网上的答案就别贴出来了,我试过了不管用,

作者: 王月    时间: 2012-6-24 12:03
1,Scannner scanner = new Scanner(System.in)
这个Scanner写错了好吧,编译都不能通过吧。

2,改正后,是可以输入中文的,我刚测试了,有图为证



LZ再试一次吧
作者: sbeeqnui1987    时间: 2012-6-24 13:47
你可以这样来取输出的内容
str = new String(sc.next().getBytes("gbk"));  //在这里你试试不同的编码,可以找到你要的结果。
是你系统本机设置问题,控制面板打开支持中文就可以了

eclipse里面windows-->perfrences--->General-->workspace-->Text file encode-->GBK
或者ISO-8859-1,修改后保存重启elipse就可以支持中文了
作者: 张华廷    时间: 2012-6-24 14:48
楼上哥们点评{:soso_e179:},赞一个。
作者: 王月    时间: 2012-6-24 20:08
LZ还没解决?
作者: 朱志辉    时间: 2012-6-24 23:04
本帖最后由 朱志辉 于 2012-6-24 23:05 编辑

右击工程,选择Run AS - Run Configuration - Common中的 Encoding改为Other:GBK(如果没有GBK就自己输入),确定。
因为微软中文操作系统的编码是GBK(或GB2312,简体),控制台使用的字符自然是GBK(或GB2312),所以在要配置Eclipse中关于控制台输入/输出的编码为GBK(或GB2312)。
建议选择GBK,因为GBK包含GB2312,支持繁体字符。
这个问题我遇到过,当时查了不少资料,都是说代码里的编码转换,后来自己就从.class运行原理那里顺藤摸瓜找到了解决办法。
作者: 周朋飞    时间: 2012-6-26 16:49
出现编码问题 主要原因是你读取文件时候用的编码和你保存该文件的时候的编码不一致

为了更好解决问题你应该首先知道你保存的时候用的编码 可以通过下面的方法 我自己写的 已经能运行  

                  InputStreamReader  isr = new InputStreamReader(new FileInputStream("文件"));
                  System.out.println(isr.getEncoding());
然后再决定把你的运行环境改成什么编码




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