Evitați utilizarea charset implicit atunci când fluxul de ieșire este un PrintStream

Această regulă steaguri următoarele Java care iau un java.io.OutputStream

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