1
5
这里有两个潜在的问题。首先,您的源代码中有西里尔字符。这意味着您必须确保用于存储文件的编码与编译器使用的编码相同。退房 贾瓦克 查看其默认编码是什么和/或如何指定特定编码的手册页。或者,在字符串中使用Unicode转义。 第二种可能是终端字体不显示西里尔字符。但是,我不认为这是正在发生的事情,因为(1)您能够看到源代码中的字符,(2)我相信缺少的字形将呈现为块,不正确的编码将呈现为问号。 要测试,只需用正确的Unicode转义符替换字符串,并验证字符是否呈现在屏幕上。 |
2
3
如果您使用 慰问 你真的很幸运,你 可能 能够让控制台打印西里尔字符。 但一般来说,控制台没有良好的字符集支持。 以其他方式输出字符串会更可靠,例如将其打印到Swing组件。 |
3
2
感谢所有有用的想法。 我的问题的关键是这句话:
在我使用的IDE中,intellij的想法是显式地将文件编码设置为macroman。通过将项目的编码改为UTF-8,这个问题在没有任何代码更改的情况下得到了解决。 |
4
1
如果您的字符串是从某个地方动态获取的,并且您需要确保它是根据需要进行编码的,那么可以使用一些将charset类型作为参数的String类构造函数来转换该字符串。 |
dukyz · 为什么java中的字符串解码和编码并不总是对称的? 6 年前 |