RFC: System.console().encoding()

David M. Lloyd david.lloyd at redhat.com
Thu Sep 15 15:47:44 UTC 2016

On 09/15/2016 02:06 AM, Xueming Shen wrote:
> -1  :-)
> Console is supposed to be a "char/String" based class, "encoding" really
> should
> have no business here in its api. Simply for some implementation
> convenience
> is really not a good reason to add such a public method.

Let's look at the two likely cases fairly though: if the console is 
purely char-based it could easily report a Unicode-based encoding (like 
UTF-16_BE), implying full support for any string that is output or 
input.  If the console is byte-based, then the encoding definitely 
provides real, useful information that could be relevant to the 
application.  Overall it seems harmless to me.

> That said, I would be fine to have such informative info in the system
> properties,
> together with its siblings, file,encoding and another "supposed to be
> private"
> property sun.jnu.encoding.
> sherman
> On 9/14/16, 11:42 PM, Aleksey Shipilev wrote:
>> Hi,
>> Claes pointed out that our own reflective hacks to figure out console
>> encoding do not work anymore [1]. But, we need the console encoding for
>> reliably printing on the console from within different sources. Note
>> that you would normally just use System.console() and its PrintWriter,
>> but reality is a bit more complicated, and sometimes you need to write
>> the plain char stream directly into the byte[]-accepting methods,
>> encoding on your own.
>> So, my question: should we, in the light of extended Jigsaw-solving
>> crunch, provide the public Console.encoding() method that would return
>> the console charset?
>> Thanks,
>> -Aleksey
>> [1]
>> http://mail.openjdk.java.net/pipermail/jmh-dev/2016-September/002330.html


More information about the core-libs-dev mailing list