试图找到一种方法来获取我的代码,以正确打印出我键入的内容。例如:我键入“♣”,它会弹出带有“?”。我进行了研究,但找不到与此相关的任何内容,也无法帮助找出我想要的方式。 (编辑:如某些人所述,可能是我的控制台,因为它对2个人有效)
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String capital = "";
int t = 1;
// Asking for input
System.out.println("Enter one character");
capital = in.next();
if (capital.length() > 1) { // If more than one character is entered. Display error.
System.out.print("Error! Entered more than one character");
t = 0;
}
if (capital.length() < 1) {// If less than one character is entered. Display error.
System.out.print("Error! Entered less than one character");
t = 0;
}
if (t == 1) { // If no errors. Proceed to print out outcome
System.out.print("You Entered: ");
System.out.print(capital);
}
}
答案 0 :(得分:1)
这里与ASCII没有任何关系。字符编码是将数值映射到特定视觉字符的系统。 ASCII是字符编码的最大局限。它只能代表127个唯一值。其中包括标准字符A-Z,a-z,0-9,基本标点符号等。
Unicode是一种字符编码,可以编码更多种类的字符,包括“♣”。 Java字符串使用Unicode编码,因此它们可以表示该字符集可以编码的所有字符,几乎就是人类已知的任何字符。这里存在一个微妙的问题,因为实际上有Unicode的两个版本,即Unicode 16和Unicode32。这是因为即使使用16位,世界也用光了空间来放置所有存在的字符。因此添加了Unicode 32。大多数字符都适合Unicode 16,因此这通常都不是问题。
要打印Java字符串中字符的Unicode数字表示形式,只需执行以下操作:
System.out.println("♣".codePointAt(0));
在这种情况下,您得到:
9827
所以9827是'♣'的Unicode数字表示形式。
答案 1 :(得分:0)
我猜您正在使用Eclipse IDE?如果是这样:转到运行->运行配置->在您的主类中->单击“通用”-选项卡->字段“编码”中->将其设置为“ UTF-8”->使用“应用”保存< / p>
您的控制台应输出♣
其他IDE应该具有类似的选项。