Această regulă steaguri următoarele Java care iau un java.io.OutputStream
java.io.PrintStreamjava.io.PrintWriterjava.io.OutputStreamWriter
Semnăturile constructorului care iau OutputStream fără parametrii Charset implicit pentru a utiliza Charset.defaultCharset() codificare .
Acest lucru provoacă o problemă în cazul în OutputStream PrintStreamde ambalaj, care deține propriul charset, ceea ce duce la ignorarea.
Acest lucru este deosebit de problematic atunci când PrintWriter wraps System.out/err, deoarece cu JEP400
, charset implicit este acum UTF-8 în timp ce standardul I/O rămâne în native.encoding.
Ca parte a acestei schimbări, java.io.PrintStream definește acum o metodă charset () pentru a returna setul de caractere al fluxului de imprimare.
Pentru mai multe informații, consultați JDK-8276970