java 控制台捕获中文 出错

来源:百度知道 编辑:UC知道 时间:2024/06/21 01:04:17
一个搜索程序 Scanner input = new Scanner(System.in);String name = input.next();假如输入:张三,下面的程序搜索不到 假如Scanner input = new Scanner(System.in);String name = input.next();加上name = "张三",则正确搜索到结果,这是不是因为控制台输入中文编码的问题?怎么办?

eclipse控制台是支持中文输入的。。。

你可以这样判断一下你得到的name是否是你想要的

我试了一下,这样是好用的
if(name.equals("张三")){
}

所以应该不存在楼主说的现象,如果有的话楼主不妨把其它代码贴上来一起研究。。。

你System.out.println(input);看看是不是乱码

String(byte[] bytes, String charsetName)

用这个方法转下看看

控制台显示出来的可能是ISO-8859-1格式
你转化成你要的编码 我的机器上是UTF8 你的也有可能 或者GBK GB2312

写法示例:(我这没工具,大小写可能有误)
String newString=new String(name.getBytes("ISO-8859-1"),"UTF8");

还有用String的trim()方法处理,去掉前后的空白。