Java 如何仅从alt+;小键盘

Java 如何仅从alt+;小键盘,java,character-encoding,Java,Character Encoding,试图找到一种方法让我的代码正确地打印出我输入的内容。例如:我输入“♣" 它会弹出“?”。我做了研究,但找不到任何与此相关的东西,也找不到任何有助于解决问题的方法。(编辑:可能是我的控制台,正如一些人所说,因为它对两个人都有效) publicstaticvoidmain(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); 字符串大写=”; int t=1; //征求意见 System.out.println(“输入一个字符”); 大写=in.next(); 如果(大写.length()>1

试图找到一种方法让我的代码正确地打印出我输入的内容。例如:我输入“♣" 它会弹出“?”。我做了研究,但找不到任何与此相关的东西,也找不到任何有助于解决问题的方法。(编辑:可能是我的控制台,正如一些人所说,因为它对两个人都有效)

publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
字符串大写=”;
int t=1;
//征求意见
System.out.println(“输入一个字符”);
大写=in.next();
如果(大写.length()>1){//如果输入了多个字符。显示错误。
System.out.print(“错误!输入了多个字符”);
t=0;
}
如果(大写.length()<1){//如果输入的字符少于一个。显示错误。
系统输出打印(“错误!输入少于一个字符”);
t=0;
}
如果(t==1){//如果没有错误。继续打印结果
System.out.print(“您输入:”);
系统输出打印(大写);
}
}

我猜您正在使用eclipse IDE?如果是这样的话:在Mainclass中运行->运行配置->单击“通用”-Tab->字段“编码”->将其设置为“UTF-8”->使用“应用”保存

您的控制台应该输出♣


其他IDE也应该有类似的选项。

这里与ASCII无关。字符编码是将数值映射到特定可视字符的系统。ASCII是最有限的字符编码。它只能表示127个唯一值。其中包括标准字符a-Z、a-Z、0-9、基本pu激动等

Unicode是一种字符编码,可以编码更多种类的字符,包括♣'. Java字符串使用Unicode编码,因此它们可以表示该字符集可以编码的所有字符,这几乎是人类已知的任何字符。这里有一个微妙的问题,实际上Unicode有两个版本,Unicode 16和Unicode 32。这是因为即使有16位,世界也没有空间来放置所有字符现有字符的。所以添加了Unicode 32。大多数字符适合Unicode 16,所以这通常都不是问题

要打印Java字符串中字符的Unicode数字表示形式,只需执行以下操作:

System.out.println("♣".codePointAt(0));
在这种情况下,您会得到:

9827

所以9827是'♣'.

是的♣' ascii字符?也许您正在寻找utf-8编码。我想您不是指ascii。ascii只能表示一小部分字符,并且“♣“不是其中之一。而且,这只是一个在打印时让您键入的内容正确显示的问题,还是您希望以数字形式打印该字符的表示形式?“弹出”是什么意思?“?当我运行代码时,它做了正确的事。它打印我键入的任何字符,包括”♣'. 请澄清您的问题。我认为您应该阅读更多有关控制台或终端上的字符集和字符集表示的内容。但它与ASCII无关(ASCII字符正是所有常用和当前字符集上可用的字符)对于Java…您的代码工作正常。问题可能来自您正在使用的控制台。此控制台无法(或未配置为)显示这个字符。但是你的代码确实得到并显示正确的感谢。老师称之为ASCII,很好地学习新的东西。谢谢!太好了!很高兴我能帮助。如果你需要更多的信息,请随时在你的问题中多加一些。如果这真的帮助你,请考虑点击“检查标记”。“说它帮助并回答了您的问题。@QuaccasaurusRex”ASCII“意思是ASCII几乎和实际使用ASCII一样罕见。当您听到“ASCII”时,询问说明ASCII适用于该情况的规范,或者假设它不是ASCII,并询问实际的字符集和编码。非常感谢。
9827