Scanner in = new Scanner(System.in,"UTF-8");
System.out.println(in.next());
如果我粘贴
∧
,控制台会输出?
。有人能解释一下我该怎么做才能正确地读取这样的逻辑符号吗?我正在使用NetBeans 8.0.1。谢谢。
Scanner in = new Scanner(System.in,"UTF-8");
System.out.println(in.next());
∧
,控制台会输出?
。有人能解释一下我该怎么做才能正确地读取这样的逻辑符号吗?我正在使用NetBeans 8.0.1。\u2227
的∧
,因此它会打印一个问号。∧
,方法是打印所读取的字符的数字表示,如下所示:Scanner in = new Scanner(System.in,"UTF-8");
String s = in.next();
if (s.length() != 0) {
System.out.println((int)s.charAt(0));
}
8743
,那么您可以在内部处理该字符:像这样的比较。if (s.equals("∧")) {
...
}
如果您使用的字符集是第一个代码页,即使用 ^
而不是 ∧
,则可以正常工作。
否则,您应该切换到使用第一个代码页中的字符,即使用 ^
而不是 ∧
。
我认为您的终端编码(IDE或命令行)可能不是UTF-8,因此在转换时会出现差异。
我刚试了一下您的代码并得到了∧。
请运行echo $LC_CTYPE或echo $LANG来检查。
阅读 如何在Scala或Java中读取混合编码的文本文件? 以及 http://docs.oracle.com/javase/7/docs/api/java/nio/charset/CharsetDecoder.html 来处理不同的编码。