For older versions of NetBeans and Java, the steps described in Java Console Output with UTF-8 used to work.
Basically you could use -Dfile.encoding=UTF-8
and add it to the NetBeans config file and also as a project Java VM parameter.
Now for Java 17 and Java 18, you have to use this instead: sun.stdout.encoding=UTF-8
. So, specifically, that means:
-J-Dsun.stdout.encoding=UTF-8
-Dsun.stdout.encoding=UTF-8
The netbeans.conf file can be found in a subdirectory where NetBeans was installed. On Windows, this is typically:
C:\Program Files\NetBeans-16\netbeans\etc\netbeans.conf
For Java 19 onwards, use this:
-Dstdout.encoding=UTF-8
(In other words, drop the sun.
part.)
Don’t forget to also handle stderr
:
-Dstderr.encoding=UTF-8
Additional notes are here, including links to NetBeans tickets where the issue is discussed in more detail.
References:
stdout.encoding
: Character encoding name forSystem.out
. The Java runtime can be started with the system property set to UTF-8, starting it with the property set to another value leads to undefined behavior.
These changes are driven by JEP 400: UTF-8 by Default.
See also the Java 19 Internationalization Guide.