在源代码中使用德语
Umlaut ß时,在 Windows 上是否仍然需要将
-encoding UTF-8
参数添加到 Java 编译器?
我以为UTF-8是Java的默认编码,不是吗?
class Main {
public static void main(String[] args) {
System.out.println("Viel Spaß beim üben!");
}
}
打开Windows-CMD:
C:\temp>javac Main.java && java Main
Viel Spa� beim üben!
C:\temp>javac -encoding UTF-8 Main.java && java Main
Viel Spaß beim üben!
根据评论...
提示:通过传递可选参数来显式指定您想要的字符编码永远不会有什么坏处,而不是隐式依赖默认值。
代码的结果:
System.out.println("Viel Spaß beim üben!");
…不是由Java控制。 Java 不会创建、拥有或控制您的特定控制台。您的控制台有自己的字符编码。您需要从 Java 输出文本以匹配该编码,或者必须将控制台使用的编码更改为 UTF-8(推荐)。
您的 Notepad++ 应用程序的屏幕截图无关紧要。文本编辑器正在传达其对 Java 源代码文件的字符编码的猜测。该编码与您的文本编码无关
"Viel Spaß beim üben!"
。它与你的控制台的字符编码无关。
顺便说一句,除非您在文件中嵌入了 BOM,否则文本编辑器只能猜测文件的字符编码,但不能确定地知道。