如何正确显示带有西里尔字符的字符串?

Ste*_*eod 1 java macos character-encoding

在带有Java 1.5的Mac OS X 10.5上,我有这段代码片段.

public static void main(String[] args) {
    String name = "???????";
    System.out.println("name = " + name);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

name = ???????
Run Code Online (Sandbox Code Playgroud)

我希望看到:

name = ???????
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

kdg*_*ory 5

这里有两个潜在的问题.首先,您的源代码中包含西里尔字符.这意味着您必须确保用于存储文件的编码与编译器使用的编码相同.查看javac联机帮助页以查看其默认编码是什么,和/或如何指定特定编码.或者,在字符串中使用Unicode转义符.

第二种可能是您的终端字体不显示西里尔字符.我不认为这不过是发生了什么,因为(1)你能看到在源代码中的字符,和(2)我相信失踪字形呈现为块,不正确的编码,渲染为问号.

要进行测试,只需使用正确的Unicode转义替换您的字符串,并验证字符在屏幕上呈现.