问题描述
我想要从Java中以字母开头打印n个希腊字符(带有"\ u03B1"代码).这是我的初衷:
I want to print n Greek characters in Java starting from alpha (whitch has the "\u03B1" code).This is what I had in mind:
String T = "";
for(int i = 0,aux = 0;i<n;i++)
{
aux = '\u03B1' + i;
T +=Character.toString((char)aux);
}
System.out.println(T);
但是它会打印n个问号.
But it prints n question marks instead.
比方说,n = 3,在输出中我得到"???".
Let's say n=3,on the output i get "???".
我认为也许我的方法是错误的,但是如果我尝试这样的话又会再次出现:
I thought that maybe my method is wrong but then again if I try something like this:
System.out.println("\u03B1\u03B2\u03B3");
我得到相同的输出:"???"
I get the same output:"???"
为什么我得到此输出而不是所需的字符?如何打印我想要的字符?
Why do I get this output instead of the desired characters and how can I print them like I want to?
注意:我使用IntelliJ作为IDE,并且我的操作系统是Windows 10.
Note:I use IntelliJ as IDE and my OS is Windows 10.
推荐答案
您会收到无效的字符输出,因为IDE的控制台输出(可能)设置为Windows默认字符集编码, CP-1252 ,但Java本机使用 Unicode 编码.
You get the invalid character output because the console output of your IDE is (probably) set to Windows default charset encoding, CP-1252, but Java natively uses Unicode encoding.
要解决此问题,您应该将IDE控制台输出的字符集编码设置为UTF-8,例如通过使用此帖子中的说明.
To fix the problem, you should set the charset encoding of your IDE's console output to UTF-8, e.g. by using the instructions from this post.
这篇关于我想显示希腊unicode字符,但显示“?".代替输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!